使用curl进行服务器请求接口数据,一般情况下都是post一维数组。
我写下例子.我们一般会这样写.
$data = array( 'name'=>'qiuyumi' );$url = "http://www.05gzs.com/"; function curlPost($url,$data) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch,CURLOPT_POSTFIELDS,$data); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $reponse = curl_exec($ch); if(curl_errno($ch)>0){ return false; } curl_close($ch); return $reponse; }print_r(curlPost($url,$data)); /* 返回值:{"status":true,"available":true} */
2.curl post的数组可能是多维数组,如果我们直接传递会报错(Notice),那么php有一个内置函数,可以把数组生成一个queryString的函数.http_build_query();。所以以后传递数据的时候最好把使用http_build_query转换一下.特别是在写基础函数的时候一定要转换一下。
<?php$data = array( 'name_list'=> array('zhangsan','lisi','zhaoer'), 'age_list'=>array('16','14','19'), 'name'=>'person' );$url = "http://www.05gzs.com/"; function curlPost($url,$data) { $ch = curl_init($url); curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch,CURLOPT_POSTFIELDS,http_build_query($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $reponse = curl_exec($ch); if(curl_errno($ch)>0){ return false; } curl_close($ch); return $reponse; }echo http_build_query($data);// print_r(curlPost($url,$data));