修正了Share站中XML文件特殊字符导致页面无法显示的问题

之前发现某些发布页面在Firefox下会出现页面无法显示,但是放在IE里面却是好的,同时用PHP直接生成的页面也会报告错误.

后来经查发现,在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); 

}

 问题解决.

评论

此博客中的热门博文

远程记录OpenWRT日志

用OpenWRT打造自动翻墙路由器(详解篇)

转一下关于Fuck的用法