- <?php
- header('content-type:text/html;charset=utf8');
- $localtime=date('y-m-d H:i:s',time());
- echo "开始时间:".$localtime;
- $access_token = "24.a810b4be2b5*******************507883636.282335-10044457";
- $url = "https://aip.baidubce.com/rpc/2.0/nlp/v2/simnet?access_token=" . $access_token;
- $body=array(
- "text_1"=>"我在二舍B门口看到一床被子,应该是哪位同学忘记收走了,记得来取哦。",
- "text_2"=>"信息A门口有一辆自行车,黄色的,没上锁,请失主前去认领。"
- );
- $json_data=json_encode($body);
- $dataArray=array();
- for($i=0;$i<160;$i++){
- array_push($dataArray,$json_data);
- }
- $jsonResultArray=array();
- mFunction($url,$dataArray,$jsonResultArray);
- /*$jsonResultArray=func($url,$json_data);//存储返回的json数组*/
- function mFunction($url,$dataArray,&$jsonResultArray){
- $multicurl=curl_multi_init();
- $curls=array();//存放所有的ch对象
- for($i=0;$i<count($dataArray);$i++){
- $curl=curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($curl, CURLOPT_POST, true);
- curl_setopt($curl, CURLOPT_POSTFIELDS, $dataArray[$i]);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//取消SSL鉴权验证
- curl_multi_add_handle($multicurl,$curl);
- array_push($curls,$curl);
- }
- /* $running = null;
- do {
- $mrc = curl_multi_exec($multicurl, $running);
- } while ($mrc == CURLM_CALL_MULTI_PERFORM);
- while ($running && $mrc == CURLM_OK) {
- if (curl_multi_select($multicurl) != -1) {//$mh批处理中还有可执行的$ch句柄,curl_multi_select($mh) != -1程序退出阻塞状态。
- do { //继续执行需要处理的$ch句柄。
- $mrc = curl_multi_exec($multicurl, $running);
- } while ($mrc == CURLM_CALL_MULTI_PERFORM);
- }
- }*/
- $running = null;
- // 执行批处理句柄
- do {
- usleep(10000);
- curl_multi_exec($multicurl, $running);
- } while ($running > 0);
- $failArray=array();
- for($i=0;$i<count($dataArray);$i++){
- $temp=iconv("gb2312", "UTF-8", curl_multi_getcontent($curls[$i]));//得到的是返回结果的json格式字符串
- $resultarray=json_decode($temp);//得到一个数组
- if(array_key_exists("error_msg",$resultarray)){//出错则重新发送请求,最后得到的结果要赋值给temp
- array_push($failArray,$dataArray[$i]);
- curl_multi_remove_handle($multicurl, $curls[$i]);
- }else{
- array_push($jsonResultArray,$temp);
- curl_multi_remove_handle($multicurl, $curls[$i]);
- }
- }
- if($failArray!=null){//如果$failArray数组不为空,继续调用func()
- curl_multi_close($multicurl);
- mFunction($url,$failArray,$jsonResultArray);//$url,$json_data,&$jsonResultArray
- }else{//如果$failArray数组为空,return 即可退出函数。
- curl_multi_close($multicurl);
- return;
- }
- }
- for($i=0;$i<count($jsonResultArray);$i++){
- var_dump($jsonResultArray[$i]);
- }
- $localtime=date('y-m-d H:i:s',time());
- echo "结束时间:".$localtime;
来源: http://www.cnblogs.com/simuhunluo/p/7519712.html