我们已经准备好了,你呢?

2020我们与您携手共赢,为您的企业形象保驾护航!

  如果我们用curl来模拟ajax来发送数据时候,我们构造的$data应该是怎样才是标准的呢?

  1、首先最容易想到的是数组结果如$data=array('a'=>1,'b'=>2);

  2、还会想到json数据格式如$data=json_encode(array('a'=>1,'b'=>2));

  这上面的两个方式在接收端作了限制后都是不正确的。(大多数数据接口的方式);

  标准的传递数据格式是:a=1&b=2

  1.接收数据流

  function 公司网站建设 getRawData(){

  $put = array();

  parse_str(file_get_contents('php://input'), $put);

  return $put;

 【营销型网站哪家做的好】  }

  //实用函数

  function curlHttp($url,$postData,$isDebug=false){

  $url=strstr($url,'')?$url:C('HTTPURL').$url;

  if($isDebug){dump($url);dump($postData);}//调试则输出发送的地址和发送的数据串

  $ch=curl_init();// 初始化

  //$header = array('Expect:');

  curl_setopt($ch, CURLOPT_URL, $url);

  curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//将curl_exec()获取的信息以文件流的形式返回,而不是直接输出。

  curl_setopt($ch, CURLOPT_HEADER, 0);//是否取得头信息

  网站建设广告 curl_setopt($ch, CURLOPT_POST, true);//post提交方式

  curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($postData));//http_build_query自动构造url发送信息

  curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 20);//20秒连接超时

  //curl_setopt($ch, CURLOPT_HTTPHEADER, 【中高端网站建设】$header);

  $data=curl_exec($ch);

  $toArray=json_decode($data,true);

  if(is_array($toArray)){

  $data=listToArray($toArray);

  }

  return $data;

  }

  function listToArray($data){

  $arr=array();

  foreach($data as $k=>$v){

  if(is_json($v)){

  $arr[$k]=listToArray(json_decode($v,true));

  }elseif(is_array($v)){

  $arr[$k]=listToArray($v);

  }else{

  $arr[$k]=$v;

  }

  }

  return $arr;

  }

  function is_json($string) 企业网站建设哪家{

  $isjsonf=json_decode($string);

  $isjsont=strstr($string,'{');

  return ($isjsonf && $isjsont)?true:false;

  }

  前端ajax获取数据

  代码

  【设计网站】 51啦统计360站长搜狗站长神马站长夸克站长头条站长头条统计

在线客服
联系方式

热线电话

13968746378

上班时间

周一到周六

公司电话

400-600-6240

二维码
线
在线留言