Есть ли какая-либо функция, которую я могу использовать для синтаксического анализа любой строки, чтобы убедиться, что она не вызовет проблемы с анализом xml? У меня есть php-скрипт, выводящий XML-файл с содержимым, полученным из форм.php output xml создает ошибку синтаксического анализа «’»
Дело в том, что, помимо обычных проверок строк из php-формы, часть текста пользователя вызывает ошибки синтаксического анализа xml. Я столкнулся с этим «’
» в частности. Это ошибка, которую я получаю Entity 'rsquo' not defined
Есть ли у кого-нибудь опыт в кодировании текста для вывода xml?
Спасибо!
Некоторые уточнения: Я вывода контента из форм в XML-файл, который затем анализируется с помощью JavaScript.
обрабатывает все форму входа с: htmlentities(trim($_POST['content']), ENT_QUOTES, 'UTF-8');
Когда я хочу вывести это содержимое в файл XML, как я должен закодировать его так, чтобы он не подбросит ошибки XML разбора?
До сих пор следующие 2 решения работают:
1) echo '<content><![CDATA['.$content.']]></content>';
2) echo '<content>'.htmlspecialchars(html_entity_decode($content, ENT_QUOTES, 'UTF-8'),ENT_QUOTES, 'UTF-8').'</content>'."\n";
ли вышеуказанные 2 решения безопасны? Что лучше?
Спасибо, извините за недопущение этой информации раньше.
Я бы использовал синтаксический анализатор XML, чтобы увидеть, не сидит ли парсер XML на входе. – Gumbo
@Kobi: Точно. – Gumbo
Проблема заключается в том, что XML знает только несколько сущностей, которые фактически указывают ссылки на символы. (См. Http://www.w3.org/TR/xml/#sec-predefined-ent) – Gumbo