Работа с регулярными выражениями
$str1='zamenamena';
$str2='http://zamenamena.ru';
$str='olewr zamenamena fjdsofid ещё одна zamenamena которую не надо заменять';
$str= preg_replace("","<a href=$str2>$str1</a>",$str); - надо что-то типа такого, если я всё правильно думаю
Цитата:
Originally posted by olegking
Подскожите пожалуйста, дан текст, например $str и надо в нем произвести поиск всех слов $str1 и надо установить на них ссылку из $str2, но проблема в том что на $str1 уже может стоять ссылка, тогда не надо нечего с ней делать.
$str1='zamenamena';
$str2='http://zamenamena.ru';
$str='olewr zamenamena fjdsofid ещё одна zamenamena которую не надо заменять';
$str= preg_replace("","<a href=$str2>$str1</a>",$str); - надо что-то типа такого, если я всё правильно думаю
Подскожите пожалуйста, дан текст, например $str и надо в нем произвести поиск всех слов $str1 и надо установить на них ссылку из $str2, но проблема в том что на $str1 уже может стоять ссылка, тогда не надо нечего с ней делать.
$str1='zamenamena';
$str2='http://zamenamena.ru';
$str='olewr zamenamena fjdsofid ещё одна zamenamena которую не надо заменять';
$str= preg_replace("","<a href=$str2>$str1</a>",$str); - надо что-то типа такого, если я всё правильно думаю
Я бы сделал примерно следующим образом:
1. Нашел бы в тексте все теги <a> и, сохранив их в отдельный массив заменил их в тексте на какой-нибудь код который в нем явно не встречается (например на 0x01). Убрав их таким образом из текста я бы гарантировал что их содержимое избежит дальнейшей обработки.
2. Произвел бы поиск и замену URL на ссылки с этими URL (либо просто preg_replace() либо preg_replace_callback() если нужна дополнительная логика)
3. Произвел бы поиск кодов 0x01 и заменил их последовательно на куски текста сохраненные в массиве в п.1