php處理json資料(從伺服器獲取,post提交)
阿新 • • 發佈:2019-02-15
<?php /* author yangkaka 2016-02-29 php通過post傳送json資料 */ function http_post_json($url,$jsonstr){ //init $ch=curl_init(); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_POSTFIELDS,$jsonstr); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_TIMEOUT,10); curl_setopt($ch,CURLOPT_HTTPHEADER,array( 'Content_Type:application/json;charset=utf-8', 'Content_Length:'.strlen($jsonstr))); //exec $resp=curl_exec($ch); $httpcode=curl_getinfo($ch,CURLINFO_HTTP_CODE); //close curl_close($ch); return array($httpcode,$resp); } //post提交的地址 $url='http://my.blog.com'; //json_encode()函式 將生成一個json編碼 /* { "a":"1", "b":"2" } */ $jsonstr=json_encode(array('a'=>1,'b'=>2)); list($returncode,$returncontent)=http_post_json($url,$jsonstr); echo $returncode echo $returncontent ?> /* php從伺服器獲得json資料 */ <?php header("Content_type:text/html;charset=utf-8"); header('Content-type: application/json'); function Geturl($url){ $ch=curl_init(); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_USERAGENT,$_SERVER['HTTP_USER_AGENT']); $resp=curl_exec($ch); curl_close($curl); return $resp; } $resp=Geturl("http://.....");//能獲取json資料的介面 //json_decode()函式生成一個數組 //用陣列處理的方法就可以 //就可以處理資料 /*array(["a"]=>int(1) ["b"]=>int(2)) */ $resp=json_decode($resp,true); var_dump($resp); echo $resp['a']; ?>