|
|
|
| Знаю, что много тем уже создавалось, но все-равно не получается сделать рабочий вариант.
В гостевой книге пользователи пишут сообщения. Там же оставляют ссылки на сайты новостей, изображения, и т.д. Необходимо текст
http://news.ru/page&etc сегодняшняя новость, или ссылка на картинку http://news.ru/images/img.jpg
|
заменялся на
<a href="http://news.ru/page&etc">http://news.ru/page&etc</a> сегодняшняя новость, или
ссылка на картинку <a href="http://news.ru/images/img.jpg">http://news.ru/images/img.jpg</a>
|
Вот код:
$text = preg_replace('#|[^\]]http://([^\s\[]+)#i', ' <a target="_blank" title="Ссылка откроется в новом окне" href="/goaway/?url=http://\\1">\\1</a> ', $text);
|
В принципе, ссылки заменяет, но некорректно:
1) Если сразу же после ссылки есть <br /> то к концу ссылки приписывается <br />:
http://news.ru/img.jpg<br/>
|
2) Если ссылку разместить в самом начале сообщения, то она не заменяется. | |
|
|
|
|
автор: ........ (27.08.2009 в 20:36) |
|
|
для: FiX
(27.08.2009 в 18:56)
| | если правильно понял что недолжнобыть "]" перед http://
$text = preg_replace('#(?<!\])\bhttp://[^\s\[<]+#i',
' <a target="_blank" title="Ссылка откроется в новом окне" href="/goaway/?url=http://\\0">\\0</a> ',
$text); | |
|
|
|
|
автор: ........... (27.08.2009 в 20:48) |
|
|
для: ........
(27.08.2009 в 20:36)
| | забыл убрать http , где
/?url=http://\\0">\\0</a> ', | |
|
|
|
|
автор: ...... (27.08.2009 в 20:53) |
|
|
для: ...........
(27.08.2009 в 20:48)
| | и применяйте htmlspecialchars() перед этим | |
|
|
|