0

我有这个代码:

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;
    }  

并像这样显示来自 twitter 的提要

        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>

如果有人可以帮助我,我该如何在 tag 中添加文本<a></a>。例如,完全像这样:

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

非常感谢

4

1 回答 1

1

只需将您的第一个 preg_replace 更改为:

  $status_text = preg_replace('~(https?://(\S+))~','<a href="$1">$2</a>',$status_text);
于 2014-02-07T08:42:07.413 回答