Но дело в том,что у меня стоит инклуд на ББ-коды.
Тоесть
Ссылки обрабатываются не
$var = preg_replace_callback('~\\[url=(https?://.+?)\\](.+?)\\[/url\\]|(https?://(www.)?[0-9a-z\.-]+\.[0-9a-z]{2,6}[0-9a-zA-Z/\?\.\~&_=/%-:#]*)~', 'url_replace', $var);
а в файле $var = BBCODE::ADD($var);
Тоесть функцией
$text = preg_replace_callback('`\\[url=((?:http|ftp)s?://.+?)\\](.+?)\\[/url\\]|((?<!\])(?:http|ftp)s?://(www.)?[0-9a-z\.-]+\.[0-9a-z]{1,7}[0-9a-zA-Z\/\?\.\~\&\;\_\=\%\-\+\:\#]*)|\[img(?(?=\=)\=([0-9]+x[0-9]+)|)\]((?:http|ftp)s?://[a-zA-Z0-9\-\_\+\.\%\~\/]+?\.(?:jpeg|jpe|jpg|gif|png|tga|tif|tiff|bmp))\[/img\]`',
create_function(
'$m',
'if(isset($m[6]))
{
$x = preg_replace(\'#^([0-9]+)x(?:.*?)$#si\', \'\1\', $m[5]);
$y = preg_replace(\'#^(?:.*?)x([0-9]+)$#si\', \'\1\', $m[5]);
$matches = array(\'%3C\',\'%3E\',\'%26\',\'%26\',\'%22\',\'%3A\',\'%28\',\'%29\');
$m[6] = str_replace($matches, \'\', $m[6]);
if(!empty($m[5]))
{
return \'<img class="expando" border="0" src="\'.$m[6].\'" width="\'.$x.\'" height="\'.$y.\'" alt="\'.$m[6].\'" style="border:0;border-radius:5" />\';
}
else
{
return \'<img src="\'.$m[6].\'" alt="\'.$m[6].\'" style="border:0;width:auto;height:auto;border-radius:5" />\';
}
}
else
{
if (!isset($m[3]))
{
return \'<a href="\' . $m[1] . \'">\' . $m[2] . \'</a>\';
}
else
{
$lText = \'\';
if(mb_strlen($m[3])>70) $lText = mb_substr($m[3],0,70) . \'...\'; else $lText = $m[3];
return \'<a href="\' . $m[3] . \'">\' . $lText . \'</a>\';
}
}'
), $text);
Я вот понять не могу как сделать так чтобы в самом ББ-коде внешняя ссылка обрабатывалась url_replece