Задать вопрос
@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 вместе с содержимым, как сделать чтобы текст внутри остался?
  • Вопрос задан
  • 204 просмотра
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
$string = '<![CDATA[Цвет]]>';
$pattern = '/^<!\[CDATA\[([\s\S]*)\]\]>\s*\z/';

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

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

Похожие вопросы