|
|
|
| нашел в форуме такое вот регулярное выражение (ссылку не сохранил, к сожалению):
$text = preg_replace("/(http:\\/\\/www|www)(\\S+)/si",'<a href="http://www\\2" target=_new>www\\2</a>',$text);
|
оно ищет в тексте url и преобразовывает его в ссылку. к сожалению, есть один недочет: текст http://www.test.com и www.test.com преобразовываются нормально, а на http://test.com - не работает. т.е. ему обязательно нужно присутствие "www", которое может и не встретиться. пожалуйста, помогите это исправить! | |
|
|
|
|
|
|
|
для: irr
(01.11.2005 в 09:53)
| | я придумал такой выход:
$text = preg_replace("/(?<!http:\\/\\/)(www)(\\S+)/si",'http://www\\2', $text);
$text = preg_replace("/(http:\\/\\/)(\\S+)/si",'<a href="http://\\2" target=_new>http://\\2</a>',$text);
|
т.е. сначала ко всем встречающимся www добавляется http://, если оно не содержалось ранее. а потом ко всем встречающимся http:// добавляется ссылка.
есть ли способ лучше? чтобы одним выражением. | |
|
|
|
|
|
|
|
для: irr
(01.11.2005 в 12:05)
| | Это нормальный подход, чем больше регулярное выражение, тем больше вероятность сделать ошибку или увеличить число сбоев регулярного выражения. | |
|
|
|
|
|
|
|
для: cheops
(01.11.2005 в 12:56)
| | спасибо : ). | |
|
|
|