我使用以下代码在文本中添加指向网址的链接...
if (preg_match_all("#((http(s?)://)|www\.)?([a-zA-Z0-9\-\.])(\w+[^\s\)\<]+)#i", $str, $matches))
{
?><pre><?php
print_r($matches);
?></pre><?php
for ($i = 0; $i < count($matches[0]); $i++)
{
$url = $matches[0][$i];
$parsed = parse_url($url);
$prefix = '';
if (!isset($parsed["scheme"])){
$prefix = 'http://';
}
$url = $prefix.$url;
$replace = '<a href="'.$url.'" class="auto_link_color">'.$matches[0][$i].'</a>';
$str = str_replace($matches[0][$i], '<a href="'.$prefix.$matches[0][$i].'" class="auto_link_color">'.$matches[0][$i].'</a>', $str);
}
}
当我在任何地方输入相同网址的两倍时问题就出现了。
例如。
google.com text text google.com
它会在第一个链接上添加一个链接,然后搜索链接内的google.com并尝试再次添加...
如何确保它会单独添加链接而不会出现问题?