标签:
写在前面的话:微信开发中,许多信息是通过json与xml格式来进行通信的,下面写一小总结。
=====正文开始======
一、json数据处理:json_decode
1、假设接收的json数据如下:
$json=‘{"access_token":"o6_bmjrPTlm6_2sgVt7hMZOPfL2M","expires_in":7200}‘;
2、通过json_decode($json),将字符串的json数据转化为PHP对象的形式:
$jsonObj=json_decode($json); var_dump($jsonObj);
var_dump($jsonObj->{access_token});
结果如下:
object(stdClass)[5] public ‘access_token‘ => string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28) public ‘expires_in‘ => int 7200 string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘(length=28)
3.也可以通过json_decode($json,true),将字符串的json数据转化为PHP数组的形式:
$jsonArray=json_decode($json,true); var_dump($jsonArray); var_dump($jsonArray[‘access_token‘]);
结果如下:
array (size=2) ‘access_token‘ => string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28) ‘expires_in‘ => int 7200 string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)
二、xml数据处理:simplexml_load_string
1、假设接收到的xml数据如下:
$xml=<<<XML
<xml>
<ToUserName><![CDATA[test]]></ToUserName>
<FromUserName><![CDATA[o6_bmjrPTlm6_2sgVt7hMZOPfL2M]]></FromUserName>
<CreateTime>1348831860</CreateTime>
<MsgType><![CDATA[text]]></MsgType>
<Content><![CDATA[this is a test]]></Content>
<MsgId>1234567890123456</MsgId>
</xml>
XML;
2、通过simplexml_load_string($xml,‘SimpleXMLElement‘, LIBXML_NOCDATA),将字符串的xml数据转化为PHP对象的形式:
$data = simplexml_load_string($xml,‘SimpleXMLElement‘, LIBXML_NOCDATA); var_dump($data);
结果如下:
object(SimpleXMLElement)[5] public ‘ToUserName‘ => string ‘test‘ (length=4) public ‘FromUserName‘ => string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28) public ‘CreateTime‘ => string ‘1348831860‘ (length=10) public ‘MsgType‘ => string ‘text‘ (length=4) public ‘Content‘ => string ‘this is a test‘ (length=14) public ‘MsgId‘ => string ‘1234567890123456‘ (length=16)
3、获得其中FromUserName信息
var_dump($data->FromUserName);
结果如下:
object(SimpleXMLElement)[6] public 0 => string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)
可见$data->FromUserName返回的竟然也是SimpleXMLElement的对象形式,如果此时将此数据插入数据库,将会失败。
4、单个的SimpleElement对象转化为字符串
var_dump((string)$data->FromUserName);//通过string强制转换 var_dump($data->FromUserName.‘‘);//或者直接与一个空字符连接
此时的结果如下:
string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28) string ‘o6_bmjrPTlm6_2sgVt7hMZOPfL2M‘ (length=28)
标签:
原文地址:http://www.cnblogs.com/wuguanglei/p/4311477.html