如何用可点击的“页面标题”替换文本中的所有网址?

时间:2018-07-08 06:24:06

标签: php regex domdocument

我正在寻找使用--p替换文本中所有URL的正确方法。

<a href=<link from the text>>PAGE TITLE OF THE LINK</a>

这就是说我有以下文字

I visit https://google.com, https://yahoo.com and other websites

我希望它修改为-

I visit [Google][1], [Yahoo][1] and other websites

非常感谢您的答复。谢谢!

2 个答案:

答案 0 :(得分:0)

这应该可以解决问题...

$text = "Google is https://google.com and Yahoo is http://yahoo.com";
$text = preg_replace('/(http[s]{0,1}\:\/\/\S{4,})\s{0,}/ims', '<a href="$1" target="_blank">$1 </a>', $text);
echo $text;

但是,这只会使用链接URL作为标签来创建链接。要自动处理事物的标签方面,您必须根据打算在项目中使用的方式扩展代码。

答案 1 :(得分:0)

您可以使用以下表达式:

\bhttps?://\S+\b

将这部分内容细分

\b - a word boundary
http:// or https://
\S+ - no whitespaces, as long as possible
\b - another word boundary

请参见a demo on regex101.com


在第二步中,您需要将链接保存在数组中,查找每个新项目并为其分配一个编号。