注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

早衰男的巢

大音希声 道隐无名

 
 
 

日志

 
 

php:simplexml_load_string WARNING: Char 0x0 out of allowed range in Entity  

2014-03-03 13:57:01|  分类: PHP |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
尝试用simplexml_load_string() 解析一个xml文件时遇到报标题上的错,似乎xml格式本身并没有问题,因为把xml提交给微信API的时候能正确被处理。

解决问题的答案在这里 
不是utf-8字符集内所有的字符都能支持(其实就是错误本身所提示的..汗),解决办法也在上述链接里提示了

function stripInvalidXml($value)
{
$ret
= "";
$current
;
if (empty($value))
{
return $ret;
}

$length
= strlen($value);
for ($i=0; $i < $length; $i++)
{
$current
= ord($value{$i});
if (($current == 0x9) ||
($current == 0xA) ||
($current == 0xD) ||
(($current >= 0x20) && ($current <= 0xD7FF)) ||
(($current >= 0xE000) && ($current <= 0xFFFD)) ||
(($current >= 0x10000) && ($current <= 0x10FFFF)))
{
$ret
.= chr($current);
}
else
{
$ret
.= " ";
}
}
return $ret;
}
把xml的字符串先预处理以下,把不能识别的字符都替换成“ ”,再用 simplexml_load_string 解析,就O了。

  评论这张
 
阅读(693)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018