首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > PHP >

PHP正则解决方案

2012-04-16 
PHP正则现在要用正则取出里面 17?xml version1.0 encodingUTF-8?responseerror17/errormes

PHP正则
现在要用正则取出里面 17
 
<?xml version="1.0" encoding="UTF-8"?>
<response>
<error>17</error>
<message>同步发送即时短信返回结果</message>
</response>

我是这样写的
preg_match("/\<error\>(.*)\<\/error\>/U",$string,$state);

但是输出:
Array
(
  [0] => <error>17</error>
  [1] => 17
)

哪些错了啊,还有我用
simplexml_load_string解析这个XML报错,本想用这个函数取<error>这个节点,但是不行,现在只能用正则了
表帮帮忙,谢谢。

[解决办法]
1.正则没错。
你可以用$state[1]获取到error节点的值。

2.simplexml_load_string()如果报错。很可能是文件BOM头的原因或者编码不一致原因。
[解决办法]
你那个输出时正确的
[解决办法]
你的正则没有错,你取$state[1]就行了 前面那个不用理会

你用simplexml_load_string报错 八成是xml里面的换行符 回车符导致的 把它们都替换掉

PHP code
<?$xml='<?xml version="1.0" encoding="UTF-8"?><response><error>17</error><message>同步发送即时短信返回结果</message></response>';$obj=simplexml_load_string(str_replace(array("\r","\n","\t"),'',$xml));print_r($obj);
[解决办法]
$xml = simplexml_load_string($s);
echo $xml->error;

如果出错,是因为你的编码不合适

热点排行