Как добавить условие "кроме"?
Регулярные выражения \ preg_replace
Необходимо обернуть содержимое внутри тега <param> в <![CDATA[...]], если уже не обернуто. Получилось реализовать без учета обертки, пожалуйста помогите сделать с условием "если внутри тега не обернуто в CDATA"
Код:
$string = '<param name="Глубина сиденья"><![CDATA[39.00]]></param><param name="Материал">Экокожа</param>';
echo preg_replace('{ <param \b [^>]* > \s* \K [^<]+ }xi', '<![CDATA[\0]]>', $string);
Результат:
<param name="Глубина сиденья"><![CDATA[<![CDATA[39.00]]>]]></param><param name="Материал"><![CDATA[Экокожа]]></param>
Ответы (1 шт):
Автор решения: Igor StackOverflow
→ Ссылка
Получилось сделать вот таким образом:
preg_replace('{ <param \b [^>]* > \K \w+ [^<]+ }xiu', '<![CDATA[\0]]>', $string);