<a href>
我写了一个简单的函数,它接受一个文本块,从中提取 url,并用它们周围的标签替换所有 url 。
例如http://site.com
应该成为<a href="http://site.com">http://site.com</a>
代码:
function parseUrls( $string )
{
$string = trim($string);
$pattern = '%\bhttp[s]?://[A-z0-9/\.\-_]+%i';
$replacement = '<a href="$1">$1</a>';
$string = preg_replace($pattern, $replacement, $string);
return $string;
}
但是,如果我将以下字符串作为输入传递:
你好https://google.com测试http://test.com/something.html abc http://site.com
我得到的输出是:
hello <a href=""></a> test <a href=""></a> abc <a href=""></a>
即,网址正在匹配,但未$replacement
正确应用。可能是我的用法$1
是错误的?
我究竟做错了什么?