xml 解析错误

PHP xml 解析错误

错误内容:

  • simplexml_load_string(): input conversion failed due to input error

错误示例:

  • xml 文件编码为utf-8, 但 encoding中的编码为 GB2312 (我自己就干了这样的蠢事)

需要注意的点:

  • php simplexml_load_string() 解析过程中会有二个字符编码,需要保持一致
    • xml 文件本身的字符编码
    • xml encoding中的编码

code:

  • 有时编码一致之后,还会出现这种解析错误, 需要自己转码
$responseXml  = file_get_contents("文件路径");
// 替换空格
 $replStr     = str_replace(' ', '', "encoding=\"GB2312\"");
 $responseXml = str_replace($replStr, "encoding=\"UTF-8\"", $responseXml);
// iconv 函数会有部分编码转换错误,mb_convert_encoding函数就没有
 $responseXml = mb_convert_encoding($responseXml, 'UTF-8', 'GB2312, GBK');
$simple = simplexml_load_string($responseXml);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容