PHP simplexml_load_file与特殊字符
浏览:2590次 出处信息
虽然本周末很凉快,不过过的实在有些忙碌。合作方的电话是一个接着一个,而且巧的很,查明原因后都是simplexml_load_file解析惹的祸。
所以这里对使用PHP来解析XML的同学提出两点注意:
第一家比较诡异,看源代码及IE页面,毛问题没有,函数就是报错。后来想了个办法,file_get_contents一下,发现丫的在XML数据前面和后面分别有一串数字。于是XML无法顺利解析,这个分析起来还好些,而另一个就堪称头疼了。
XML格式如下:
以下是代码片段: <Result value="true" message="Success!"> <Item ID="8861" UserName="30121740" NickName="ǒˇFEΙでァ" Grade="16" Repute="168" Sex="false" WinCount="138" TotalCount="229" ConsortiaName="圣域" Rename="false" ConsortiaRename="false" EscapeCount="0" IsFirst="31" FightPower="3032" /> </Result> |
初步分析是由于 里面NickName乱码导致,于是试验另一地址:
以下是代码片段: <Result value="true" message="Success!"> <Item ID="7" UserName="13792776" NickName="龙哥" Grade="1" Repute="313119" Sex="true" WinCount="0" TotalCount="0" ConsortiaName="" Rename="false" ConsortiaRename="false" EscapeCount="0" IsFirst="34" FightPower="0" /> </Result> |
毛问题没有,很显然是这个NickName乱码造成的。于是开始了漫长且无奈的沟通,不过人家合作方不认为自己的文件格式有问题,且一直在强调其他合作方没有此问题。
于是,我只能无语的说“大哥,咱的水平比不上其他合作方的啊,把我不想要的数据去掉好吗?其实我就想要个ID”。不过无果。最后得出的结论是居然告诉我要让用户去改用户名,喵了个咪的。
于是,苦苦搜索中,发现了这么一个同病相怜的哥们《如果xml文档里含有特殊字符时该怎么办》
以下是引用片段: 原来,这个xml里有&符号,这个&符号在.NET里是可以正常读取的,但是在php里是不行的,php里如果加载的话会报错 |
再瞅一眼,这哥们文章里的XML格式咋和我的这么像,于是豁然开朗,这是同一家公司。最后没办法,人家不改,也只能我想办法了,用户还等着充值呢不是。于是一样,替换&符。
其实能实现的方法很多,比如说用正则,但是我想表达的意见是,咱能按文档上面来吗?你说的是XML格式,那就要保证这个XML格式可以被解析好吧?
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:检测文本正文是否包含有特定词的PHP扩展
后一篇:PHP 持久连接于并发 >>
文章信息
- 作者:simaopig 来源: 小小子,simaopig
- 标签: simplexml_load_f
- 发布时间:2010-07-16 00:21:47
近3天十大热文
- [66] Go Reflect 性能
- [65] Oracle MTS模式下 进程地址与会话信
- [64] 如何拿下简短的域名
- [59] android 开发入门
- [59] IOS安全–浅谈关于IOS加固的几种方法
- [58] 图书馆的世界纪录
- [58] 【社会化设计】自我(self)部分――欢迎区
- [53] 视觉调整-设计师 vs. 逻辑
- [47] 界面设计速成
- [46] 读书笔记-壹百度:百度十年千倍的29条法则