vik7878, похоже что перед записью в бд выполняется преобразование данных какой-то ф-ей, вида htmlspecialchars() или ей подобной. Этот фильтр нужно использовать не перед записью в базу, а перед выводом в браузер. А перед записью в базу, если вы не используете PDO, нужно обрабатывать строки функцией mysql_real_escape_string() .
Строитель,от души за помощь,но видно я плохо объясняю.Попробую ещё раз)
Например в тексте нужно заменить слова мама. Оно есть в <p>мама</p>,в <h...>мама</h...> и в <a href="">мама</a>
Так вот нужно, заменить мама на папа, но только не в <h...>мама</h...> и не в <a href="">мама</a>
юрьич, лучше напишите пример исходной строки, и пример подстроки, которую надо получить в результате. (Добавление)
"Замена слова в ссылке" - это наверное так?
$str='Нужно добавить ещё условие, что бы исключить замену слова, которые являются анкором ссылки!<a href="#">Подскажите регулярку, а то что то не выходит</a> Попробовал добавить в массив тег а, не работает.';
Проблема скорее всего в версии php - она ниже версии 5.4. Подымите версию, или переписывайте все объявления массивов с сокращённого $array = []; на старый синтаксис $array = array();
WizAnd, именно на уровне regex - нет. Но можно для замены вместо preg_replace() использовать preg_replace_callback(), и в теле callback-функции выполнять арифметические операции с найденным в regex соответствием.