我试图生成一个大约 23 到 30 MB 的 XML 文档,当我用 Firefox 打开它时,我收到
XML Parsing Error: not well-formed
Location: file:///Users/User/Downloads/export(2).xml
Line Number 137725, Column 1343:
之后,我尝试使用验证文档XML Nanny
并收到以下错误:
Invalid Character (Unicode: 0xB)
在几 (13) 条线路上:137725、137738、137751、137764、137777、137790、137803、137816、146834、189949、193444、193457、193470
我尝试了几种“解决方案”,其中包括:
正则表达式:
preg_replace( '/[^\x9\xA\xD\x20-\x{D7FF}\x{E000}-\x{FFFD}\x{10000}-\x{10FFFF}]+/' , ' ', $data->Description);
这里的问题是我不太确定这是有效的正则表达式,因为我收到内部服务器错误,因为我们的 apache 中启用了 mod 安全性。
我试图用 BOM 将我的文件保存为 UTF-8,但那是绝望的尝试
我尝试将 iconv 与 'UTF-8//IGNORE' 一起使用,但这并没有帮助
我尝试使用逐个字符替换,但这不适用于我的文件,因为我有 230k 行..即使我替换了我遇到问题的特定标签,我也会在 php 中触发 max_execution_time 指令和我的脚本被杀了。
目前我的解决方案是手动清除此无效字符的数据库记录,但这现在是解决我的问题的正确和正确的解决方案,因为将来此脚本将用于自动执行此导出,并且手动编辑不是选项或演讲主题。