|
|
|
| требуется превратить ссылку
http://site.com
в html тег
<a href='http://site.com'>http://site.com</a>
вроде бы всё получилось при помощи отакой функции
$text = preg_replace('#(.?)[^\[\S*\]]http://(\S*)#si', '<a target="_blank" href="http://\\2">\\2</a>', $text);
но если перед ссылкой чётное количество пробелов или 0 то замена не происходит
а если перед ссылкой слово + 1 пробел то слово склеивается со ссылкой
если слово + 2 пробела то ссылка не заменяется
если слово + 3 пробела то всё норм
и так далее | |
|
|
|
|
|
|
|
для: skinny
(03.02.2009 в 16:41)
| | сделайте шаблон попроще :) | |
|
|
|
|
|
|
|
для: Trianon
(03.02.2009 в 16:47)
| | это как?
тут дело не в сложности шаблона
а в том што количество начальных пробелов влияет на замену | |
|
|
|
|
|
|
|
для: skinny
(03.02.2009 в 16:56)
| | это потому, что начальные пробелы захватываются шаблоном.
а preg_replace меняет текст, попавший в шаблон, от # до # | |
|
|
|
|
|
|
|
для: skinny
(03.02.2009 в 16:41)
| | ну и как с этим бороться? | |
|
|
|
|
|
|
|
для: skinny
(03.02.2009 в 17:12)
| |
ЗАвисит от того, с какой целью это включалось. | |
|
|
|
|
|
|
|
для: Trianon
(03.02.2009 в 17:19)
| | штобы не обрабатывались строки типа
[img]http://sait.com/img.png[/img] | |
|
|
|
|
|
|
|
для: skinny
(03.02.2009 в 17:26)
| | О... терапефто... | |
|
|
|
|
|
|
|
для: skinny
(03.02.2009 в 17:26)
| | Шаманстство
$text = preg_replace('#[^\]]http://([^\s\[]+)#i', ' <a target="_blank" href="http://\\1">\\1</a> ', $text);
|
| |
|
|
|