使用preg_replace()

时间:2015-07-02 20:00:06

标签: php

对于模糊的标题抱歉。我找不到简短的方法来描述我的问题。

我正在使用Twitter API v1.1在网站上嵌入用户推文。由于这只是原始文本,我使用它来创建URL:

$tweet_text = preg_replace('/(\b(www\.|http\:\/\/)\S+\b)/', "<a target='_blank' href='$1'>$1</a>", $tweet_text);

问题是,我希望文本显示时没有'http://'。例如,“http://t.co/wXkHXFs4KR”只会显示为“t.co/wXkHXFs4KR”。如果不将其从href=""中删除,我就无法想到这样做的方法,而不仅仅是<a>标记之间的网址。

我感谢任何帮助,

奥利。

1 个答案:

答案 0 :(得分:2)

这应该完成你的目标

echo preg_replace('~\b(www\.|https?://)(\S+)\b~', "<a target='_blank' href='$1$2'>$2</a>", 'http://t.co/wXkHXFs4KR');

在此,我们移动您的捕获组捕获httpwww,然后捕获其余内容。

输出:

<a target='_blank' href='http://t.co/wXkHXFs4KR'>t.co/wXkHXFs4KR</a>

演示:http://sandbox.onlinephpfunctions.com/code/9d5e3e6aca50ce74bcc38594d056d4dde0918fa3