PHP: Как избавиться от всех <! [CDATA [and]]> вхождений в строке? - PullRequest
1 голос
/ 04 июня 2010

Я попробовал это как тест:

<?php
$crap = "<![CDATA[Hello, world!]]>";
$crap = str_replace(list("<![CDATA[", "]]>"), "", $crap);
echo $crap;
?>

Но он вернул это:

Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING, expecting ',' or ')' in /srv/www/htdocs/test.php on line 3

1 Ответ

4 голосов
/ 04 июня 2010

Заменить list на array. list используется для одновременного присвоения нескольких переменных.

Но вы не должны анализировать XML с str_replace. Рассмотрим следующий допустимый файл:

<?xml version="1.0" ?>
<root>
<![CDATA[&]]>
</root>

После вашей замены оно становится:

<?xml version="1.0" ?>
<root>
&
</root>

недопустимый XML.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...