一尘不染

PHP生成的XML显示无效的Char值27消息

php

我正在使用PHP库生成XML,如下所示:

$dom = new DOMDocument("1.0","utf-8");

进行上述操作会导致页面显示在输出顶部。

该页面包含以下错误:第16行的第274505列错误:PCDATA无效的Char值27下面是直到第一个错误的页面呈现。

我尝试使用Tidy库进行纠正。使用iconv在UTF-8中获取中文字符。


阅读 278

收藏
2020-05-29

共1个答案

一尘不染

该网站建议使用一种有用的功能来消除该错误。
http://www.phpwact.org/php/i18n/charsets#common_problem_areas_with_utf-8

当您将utf-8编码的字符串放入XML文档时,您应该记住,XML文档中并非所有utf-8的有效字符都被接受http://www.w3.org/TR/REC-
xml/#charsets

因此,您应该删除不需要的字符,否则将出现XML致命的解析错误,例如上述

function utf8_for_xml($string)
{
    return preg_replace ('/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}]+/u', ' ', $string);
}

希望可以节省一些时间。

2020-05-29