@Dmitry2590

Как сделать удаление CDATA в строке, оставив только текст внутри CDATA?

Добрый день! Как сделать удаление CDATA в строке, оставив только текст внутри CDATA????
$re = '/^\s*<!\[CDATA\[[\s\S]*?\s*\]\]>\s*/';
$str = '<![CDATA[Цвет]]>';
$subst = '\1';

$result = preg_replace($re, $subst, $str);

echo "The result of the substitution is ".$result;

Почему данный код удаляет CDATA вместе с содержимым, как сделать чтобы текст внутри остался?
  • Вопрос задан
  • 167 просмотров
Пригласить эксперта
Ответы на вопрос 1
$string = '<![CDATA[Цвет]]>';
$pattern = '/^<!\[CDATA\[([\s\S]*)\]\]>\s*\z/';

$color = preg_replace($pattern, '$1', $string);
var_dump($color); // Цвет
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы