Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > Замена слов вне тегов


Автор: gvozd 6.10.2010, 16:16
Здравствуйте.
Такая проблема - есть строка:
Код

<div>OLOLO HD life BYBYBY <span HD life s> JIJIJI HD life HD life <HD life></div>

Надо слово HD life заменить ссылкой, но не трогать то, что внутри тегов (между < и >).

Написал такой код:
Код

$x = '<div>OLOLO HD life BYBYBY <span HD life s> JIJIJI HD life HD life <HD life></div>';
$word = 'HD life';
$x = preg_replace("'(?<!<)([^<>]+)(".$word.")'isU", "$1<a href=\"ssssssss\">".$word."</a>", $x);


Все нормально, но он трогает содержимое псевдо-тега span. Подскажите, пожалуйста, как решить проблему?

Автор: patap 6.10.2010, 16:52
думаю здесь больше умастна функция http://ua2.php.net/str_replace

Автор: gta4kv 6.10.2010, 17:05
Цитата(patap @ 6.10.2010,  16:52)
думаю здесь больше умастна функция http://ua2.php.net/str_replace

А я вот думаю, что не стоит давать глупых советов.

Автор: gta4kv 6.10.2010, 17:28
Код

word(?!([^<]+)?>)

Автор: gvozd 6.10.2010, 18:28
gta4kv, спасибо, помогло.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)