|
|
|
| Здравствуйте!
Подскажите, как сделать так, чтобы при добавлении текста, в котором есть ссылки, они становились активными?
Например, в файл сохраняется текст:
*****************************
http://www.rht.rtrt-dfg.ru/
Привет всем!
http://rtytu.gfdh-gfh.ru/
www.5y.ey5-rhrt.ru/
*****************************
Надо сделать так, чтобы при отображении в браузере ВСЕ ссылки были активными. | |
|
|
|
|
|
|
|
для: Jaroslav
(06.09.2006 в 22:16)
| | Можно поступить следующим образом
<?php
$text = 'Здравствуйте!
Подскажите, как сделать так, чтобы при добавлении текста, в котором есть ссылки, они становились активными?
Например, в файл сохраняется текст:
*****************************
http://www.rht.rtrt-dfg.ru/
Привет всем!
http://rtytu.gfdh-gfh.ru/
www.5y.ey5-rhrt.ru/
*****************************
Надо сделать так, чтобы при отображении в браузере ВСЕ ссылки были активными.';
$pattern = "#(http|www)[^\s]+#is";
echo preg_replace_callback($pattern, "replace_url", $text);
// функция обратного вызова
function replace_url($matches)
{
if(substr($matches[0], 0, 4) != "http") return "<a href=http://$matches[0]>$matches[0]</a>";
else return "<a href=$matches[0]>$matches[0]</a>";
}
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(06.09.2006 в 22:30)
| | Все отлично, кроме одного.
Не учитывается перенос строк.
Как это можно подправить? | |
|
|
|
|
|
|
|
для: Jaroslav
(06.09.2006 в 22:46)
| | Перенос в URL? Хм... не желательно бы URL разрывать - он теряет в этом случае правильность... | |
|
|
|
|
|
|
|
для: cheops
(06.09.2006 в 22:52)
| | Хотел сделать так, что если в переменной $text присутствует перенос строки, то чтобы он сохранялся. Уже сам разобрался - немного подправил код.
Спасибо за помощь!
<?php
$text = 'Здравствуйте!
Подскажите, как сделать так, чтобы при добавлении текста, в котором есть ссылки, они становились активными?
Например, в файл сохраняется текст:
*****************************
http://www.rht.rtrt-dfg.ru/
Привет всем!
http://rtytu.gfdh-gfh.ru/
www.5y.ey5-rhrt.ru/
*****************************
Надо сделать так, чтобы при отображении в браузере ВСЕ ссылки были активными.';
$pattern = "#(http|www)[^\s]+#is";
$info= preg_replace_callback($pattern, "replace_url", $text);
$info =nl2br($info);
print $info;
// функция обратного вызова
function replace_url($matches)
{
if(substr($matches[0], 0, 4) != "http") return "<a href=http://$matches[0]>$matches[0]</a>";
else return "<a href=$matches[0]>$matches[0]</a>";
}
?> | |
|
|
|