|
|
|
| Привет всем!
нужно чтобы тексовые ссылки типа
http://www.softtime.ru/forum/addtheme.php?id_forum=1
были активными. То есть, я понимаю нужно в тексте искать "http://" и заменить текстовую ссылку на <a href="http://www.softtime.ru/forum/addtheme.php?id_forum=1">http://www.softtime.ru/forum/addtheme.php?id_forum=1</a>
Кто знает как это сделать? | |
|
|
|
|
|
|
|
для: 1prom
(05.02.2011 в 14:14)
| | В поиск по разделу регулярные выражения там найдёте то что нужно вам | |
|
|
|
|
|
|
|
|
для: neadekvat
(05.02.2011 в 14:30)
| | отлично, спасиб | |
|
|
|
|
|
|
|
для: neadekvat
(05.02.2011 в 14:30)
| | Кстати в той теме:
$text = "http://site.ru blablabla";
echo preg_replace("#^(http://[^\s]+)#", '<a href="\1">\1</a>', $text);
не заменяет, если перед "http://site.ru blablabla" поставить пробел или другой символ напр. "сайт http://site.ru blablabla"
Как сделать замену в таком случае? | |
|
|
|
|
|
|
|
для: 1prom
(05.02.2011 в 18:32)
| | Уберите привязку к началу строки ^
<?php
$text = "сайт http://site.ru blablabla";
echo preg_replace("#(http://[^\s]+)#", '<a href="\1">\1</a>', $text);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(05.02.2011 в 18:37)
| | Спасибо, был бы еще идеальный вариант если применить функцию substr($link, 0, 1000); и обрезать ссылки длиннее 20 симв. можно так? | |
|
|
|
|
|
|
|
для: 1prom
(05.02.2011 в 19:24)
| | Можно, переделайте запрос скрипт образом
<?php
$text = "сайт http://site.ru blablabla";
echo preg_replace("#(http://[^\s]+)#e", "'<a href=\"\\1\">'.substr('\\1', 0, 1000).'</a>'", $text);
?>
|
| |
|
|
|
|
|
|
|
для: cheops
(05.02.2011 в 19:30)
| | БЛАГОДАРЕН | |
|
|
|
|
|
|
|
для: 1prom
(05.02.2011 в 14:14)
| |
<?php
$text = preg_replace("/\[url\](.+)\[\/url\]/uis", "<a href=\"\$1\" target=\"_blank\">\$1</a>", $text);
|
| |
|
|
|
|
|
|
|
для: Красная_шляпа
(05.02.2011 в 15:00)
| | Это еще лучше!)) | |
|
|
|
|
|
|
|
для: 1prom
(05.02.2011 в 15:33)
| | А вот - совсем хорошо:
<?
function right_url($value){
$pattern = "#(http(||s)://[-a-z0-9_\.\/]+(\.(html|php|pl|cgi))*[-a-z0-9_:@&\?=+,\.!/~*'%$\#]*)#i";
$value = preg_replace($pattern,'<a href=$1>$1</a>',$value);
$pattern = "#([-0-9a-z_\.]+@[-0-9a-z_^\.]+\.[a-z]{2,3})#i";
$value = preg_replace($pattern,'<a href=mailto:\\1>\\1</a>',$value);
return $value;
}
?>
|
Ловит, в том числе, и "мыльные" ссылоны. | |
|
|
|
|
|
|
|
для: Deed
(05.02.2011 в 20:40)
| | Да, надо взять на заметкус) | |
|
|
|