Преобразование ссылки регуляркой

HbIXA

Новичок
В общем для чата хотел сделать, чтобы вставленная ссылка автоматически становилась кликабельной и еще выдерала титл самой страницы, нашел решение, немного подкорректировал, все работает. Но осталась одна проблема, если вставляешь ссылку вида "http://phpclub.ru/talk/forums/Вопросы-по-программированию-на-РНР.16/", то все прекрасно, получается кликабельная ссылка в виде титла. Но если до или после ссылки вставить любой текст, то он тупо виснет. Пытался изменить регулярку не помогло, что не так или как исправить данную проблему?

PHP:
function pregtrim($str) {
   return preg_replace("/[^\x20-\xFF]/","",@strval($str));
}
function checkurl($url) {
   $url=trim(pregtrim($url));
   if (!preg_match("~^(?:(?:https?|ftp|telnet)://(?:[a-z0-9_-]{1,32}".
   "(?::[a-z0-9_-]{1,32})?@)?)?(?:(?:[a-z0-9-]{1,128}\.)+(?:com|net|".
   "org|mil|edu|arpa|gov|biz|info|aero|inc|name|[a-z]{2})|(?!0)(?:(?".
   "!0[^.]|255)[0-9]{1,3}\.){3}(?!0|255)[0-9]{1,3})(?:/[a-z0-9.,_@%&".
   "?+=\~/-]*)?(?:#[^ '\"&<>]*)?([^\s+a-zA-Z0-9])$~i",$url,$ok))
   return;
   if (!strstr($url,"://")) $url="http://".$url;
   $url=preg_replace("~^[a-z]+~ie","strtolower('\\0')",$url);
   return $url;
}


if (!$fp = fopen($message, 'r'))  $message = $message; 
while (!feof($fp) ) {
$page .= fgets($fp, 4096);
}
$titre = eregi("<title>(.*)</title>",$page,$regs);
$title =  $regs[1];
fclose($fp);
$message = "[url=". checkurl($message) ."]".$title."[/url]";
 
Сверху