我发现许多 PHP 脚本可以将文本中的 url 转换为可点击的链接。但是它们中的大多数都不起作用,有些会产生大错误。其中一些转换已经可点击的链接。其他人不起作用,第三人从文本链接中制作部分。 我需要一个脚本,它只检测链接,而不是文本,并且不会转换已经可以点击的链接,因为它非常丑陋。
我发现这段代码似乎是我测试过的最好的。但它有一些错误。此代码转换可点击链接。像这样:
原来的:
<a href="http://www.netload.in/dateiySgPP2b14W/1409423417ExpFut.pdf.htm" target="_blank">http://www.netload.in/dateiySgPP2b14W/1409...7ExpFut.pdf.htm</a>
转换:
http://www.netload.in/dateiySgPP2b14W/1409423417ExpFut.pdf.htm" target="_blank">http://www.netload.in/dateiySgPP2b14W/1409...7ExpFut.pdf.htm
这是代码:
function parse_urls($text, $maxurl_len = 35, $target = '_self') // Make URLs Clickable
{
if (preg_match_all('/((ht|f)tps?:\/\/([\w\.]+\.)?[\w-]+(\.[a-zA-Z]{2,4})?[^\s\r\n\(\)"\'<>\,\!]+)/si', $text, $urls))
{
$offset1 = ceil(0.65 * $maxurl_len) - 2;
$offset2 = ceil(0.30 * $maxurl_len) - 1;
foreach (array_unique($urls[1]) AS $url)
{
if ($maxurl_len AND strlen($url) > $maxurl_len)
{
$urltext = substr($url, 0, $offset1) . '...' . substr($url, -$offset2);
}
else
{
$urltext = $url;
}
$text = str_replace($url, '<a href="'. $url .'" target="'. $target .'" title="'. $url .'">'. $urltext .'</a>', $text);
}
}
return $text;
}