对于模糊的标题抱歉。我找不到简短的方法来描述我的问题。
我正在使用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>
标记之间的网址。
我感谢任何帮助,
奥利。
答案 0 :(得分:2)
这应该完成你的目标
echo preg_replace('~\b(www\.|https?://)(\S+)\b~', "<a target='_blank' href='$1$2'>$2</a>", 'http://t.co/wXkHXFs4KR');
在此,我们移动您的捕获组捕获http
或www
,然后捕获其余内容。
输出:
<a target='_blank' href='http://t.co/wXkHXFs4KR'>t.co/wXkHXFs4KR</a>
演示:http://sandbox.onlinephpfunctions.com/code/9d5e3e6aca50ce74bcc38594d056d4dde0918fa3