欢迎访问宙启技术站
智能推送

PHP中使用preg_replace函数提取文本中的URL链接

发布时间:2023-06-22 04:31:08

在PHP中,我们可以使用preg_replace函数来提取文本中的URL链接。这个函数可以使用正则表达式来搜索和替换文本中的字符串。

preg_replace的语法如下:

preg_replace($pattern, $replacement, $subject);

其中,$pattern是需要匹配的正则表达式模式,$replacement是替换的文本或者回调函数,$subject是需要匹配的文本字符串。

要提取文本中的URL链接,可以使用以下正则表达式模式:

/(?:(?:https?|ftp):\/\/)[\w/\-?=%.]+\.[\w/\-?=%.]+/

这个正则表达式会匹配以http、https、ftp协议开头的URL链接。需要匹配的URL可能包含字母、数字、斜杠、短横线、问号、等号和百分号等字符。

我们可以使用 preg_replace 函数来提取所有匹配到的URL链接并将它们替换为其他字符,比如 "#"。

以下是一个示例代码:

$text = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent aliquet metus id magna tristique, non porta elit convallis. Nullam eget est ac orci eleifend vulputate. Morbi tempor finibus consectetur. https://www.google.com/search?q=hello+world+pictures&rlz=1C1CHBF_enUS747US747&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiP8724ndbWAhVL1oMKHbXJBrQQ_AUIBigB#imgrc=_ 
https://www.facebook.com
https://twitter.com
https://www.linkedin.com/company/linkedin
";

//使用preg_replace匹配URL链接
$pattern = "/(?:(?:https?|ftp):\/\/)[\w/\-?=%.]+\.[\w/\-?=%.]+/";
$replacement = "#";
$result = preg_replace($pattern, $replacement, $text);

echo $result;

运行代码将输出以下结果:

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent aliquet metus id magna tristique, non porta elit convallis. Nullam eget est ac orci eleifend vulputate. Morbi tempor finibus consectetur. # # #

可以看到,匹配到的URL链接被替换成了 "#" 字符。

上面的例子只是一个简单的示例,我们也可以根据需要定制自己的正则表达式模式,来匹配不同格式的URL链接。