Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работа с регулярными выражениями

1.9K
30 апреля 2004 года
olegking
45 / / 21.02.2004
Подскожите пожалуйста, дан текст, например $str и надо в нем произвести поиск всех слов $str1 и надо установить на них ссылку из $str2, но проблема в том что на $str1 уже может стоять ссылка, тогда не надо нечего с ней делать.
$str1='zamenamena';
$str2='http://zamenamena.ru';
$str='olewr zamenamena fjdsofid ещё одна zamenamena которую не надо заменять';
$str= preg_replace("","<a href=$str2>$str1</a>",$str); - надо что-то типа такого, если я всё правильно думаю
372
02 мая 2004 года
Flying
312 / / 20.09.2000
Цитата:
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); - надо что-то типа такого, если я всё правильно думаю



Я бы сделал примерно следующим образом:
1. Нашел бы в тексте все теги <a> и, сохранив их в отдельный массив заменил их в тексте на какой-нибудь код который в нем явно не встречается (например на 0x01). Убрав их таким образом из текста я бы гарантировал что их содержимое избежит дальнейшей обработки.
2. Произвел бы поиск и замену URL на ссылки с этими URL (либо просто preg_replace() либо preg_replace_callback() если нужна дополнительная логика)
3. Произвел бы поиск кодов 0x01 и заменил их последовательно на куски текста сохраненные в массиве в п.1

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог