修正了Share站中XML文件特殊字符导致页面无法显示的问题
之前发现某些发布页面在Firefox下会出现页面无法显示,但是放在IE里面却是好的,同时用PHP直接生成的页面也会报告错误.
后来经查发现,在Firefox中出现了一个无法识别的字符,因此导致整个XML文件出错,而且就算是将此字符列入CDATA中也没有用,翻阅资料发现以下为根本原因:
XML标准规定的无效字节为:
0x00 - 0x08
0x0b - 0x0c
0x0e - 0x1f
因此只要是内容中出现了这样字节的字符,文内必然报错,而IE不报错的原因自然是因为他不符合标准....错了也能显示OTL
于是就很简单了,增加一个过滤.将这些字符踢掉就好了
问题解决.
后来经查发现,在Firefox中出现了一个无法识别的字符,因此导致整个XML文件出错,而且就算是将此字符列入CDATA中也没有用,翻阅资料发现以下为根本原因:
XML标准规定的无效字节为:
0x00 - 0x08
0x0b - 0x0c
0x0e - 0x1f
因此只要是内容中出现了这样字节的字符,文内必然报错,而IE不报错的原因自然是因为他不符合标准....错了也能显示OTL
于是就很简单了,增加一个过滤.将这些字符踢掉就好了
function XmlSafeStr($s)
{
return preg_replace("/[\\x00-\\x08\\x0b-\\x0c\\x0e-\\x1f]/",'',$s);
}
问题解决.
评论
发表评论