Встала работа, что тут не так?
PHP:
скопировать код в буфер обмена
function repl($text) { $txt = preg_replace('/\[url\](?:http:\/\/)?([a-z0-9-.]+\.\w{2,4})\[\/url\]/iu', "<a href=\"$1\">$1</a>", $txt); $txt = preg_replace('/\[url\s?=\s?([\'"]?)(?:http:\/\/)?([a-z0-9-.]+\.\w{2,4})\1\](.*?)\[\/url\]/iu', "<a href=\"$2\">$3</a>", $txt); return $text; }
Тестируемый текст:
CODE ( htmlphp):
скопировать код в буфер обмена
bla bla bla [url="http://www.google.ru"]google[/url] asdfasdfasdfasdfasdf, fdsgfdgdsfgd [url="http://www.google.ru/asdfasdfa"]dsafdasfasd[/url] из игры в меню. BLABALBALBALBA "[url="http://www.google.ru/asdfasdfadsds"]test[/url]" dsafasdfasdfa.
Меняется на то, что в первый ссылке дважды повторяется сайт, а остальные выводятся без замены.
Что не так в регулярке?
|