2014-02-07 6 views
0

У меня есть этот код:заменить текст с URL в Твиттере

public function linkify($status_text) 
    { 
     $status_text = preg_replace('/(https?:\/\/\S+)/','<a href="\1">\1</a>', $status_text); 
     $status_text = preg_replace('/(^|\s)@(\w+)/','\1<a href="http://twitter.com/\2">@\2</a>',$status_text); 
     $status_text = preg_replace('/(^|\s)#(\w+)/','\1#<a href="http://search.twitter.com/search?q=%23\2">\2</a>',$status_text); 
     return $status_text; 
    } 

и дисплей питается от твиттера как этого

 foreach($feed as $feed_item) { 
      $html .= '<li>'; 
      $html .= '' . $this->linkify($feed_item->text) . ''; 
      $html .= '' . $this->relativedate((strtotime($feed_item->created_at))) . ''; 
      $html .= '</li>'; 
     } 
     echo $html; 

результата этого кода

<li>Twitter Feed Text <a href="http://t.co/TnkNfxCdRu">http://t.co/TnkNfxCdRu</a></li> 

если кто-нибудь может помочь мне, как я могу добавить текст внутри тега <a></a>. например, чтобы быть точно так:

<li><a href="http://t.co/TnkNfxCdRu">Twitter Feed Text</a></li> 

Спасибо большое

ответ

1

Просто измените свой первый preg_replace на:

$status_text = preg_replace('~(https?://(\S+))~','<a href="$1">$2</a>',$status_text); 
+0

спасибо за быстрый ответ, но это «Твиттера текст "не фиксирован, он различен каждый раз – Robert

+0

@ user3276648: Хорошо, но откуда вы его берете? – Toto

+0

из twitter, текст по умолчанию выглядит так: – Robert