В этой записи я расскажу как могут автоматически создаваться кликабельные ссылки, например, если пользователь вставляет их на вашем сайте в комментариях, на форуме или где-то еще.
Итак, вот этот небольшой кусок PHP-кода поможет автоматически определить, где находится ссылка в каком-либо текстовом сообщении и сделает эту ссылку кликабельной:
<?php
// Функция настройки длинны создаваемой ссылки
function trimlink($text, $length)
{
$dec = array("&", "\"", "'", "\\", '\"', "\'", "<", ">");
$enc = array("&", """, "'", "\", """, "'", "<", ">");
$text = str_replace($enc, $dec, $text);
if (strlen($text) > $length) $text = substr($text, 0, ($length-3))."...";
$text = str_replace($dec, $enc, $text);
return $text;
}
// Загоняем преобразуемое текстовое сообщение в переменную
$text = "Это конечно все хорошо! Но я знаю еще один хороший сайт - http://maxsof.ru, а так же советую посетить www.podelitsya.ru";
// Делаем колдовство и находим ссылки :-)
$text = preg_replace("#(^|[n ])((http|https|ftp|ftps)://[w#$%&~/.-;:=,?@[]()+]*)#sie", "'\1<a href="'.trim('\2').'" target="_blank" title="autolink">'.trimlink('\2', 20).(strlen('\2')>30?substr('\2', strlen('\2')-10, strlen('\2')):'').'</a>'", $text);
$text = preg_replace("#(^|[n ])((www|ftp).[w#$%&~/.-;:=,?@[]()+]*)#sie", "'\1<a href=http://"'.trim('\2').'" target="_blank" title="autolink">'.trimlink('\2', 20).(strlen('\1')>30?substr('\2', strlen('\2')-10, strlen('\2')):'').'</a>'", $text);
// Выводим текстовое сообщение на экран
echo $text;
?>