PHP实现的curl批量请求操作示例_php技巧_脚本之家

Posted by

本文实例讲述了PHP实现的curl批量请求操作。分享给大家供大家参考,具体如下:

本文实例讲述了php基于curl重写file_get_contents函数。分享给大家供大家参考,具体如下:

 "http://www.baidu.com/", 'cheyun' => "http://auto.jrj.com.cn/", 'w3c' => "http://www.w3cschool.cc/",);// 创建批处理cURL句柄$mh = curl_multi_init();foreach  { // 创建一对cURL资源 $conn[$i] = curl_init(); // 设置URL和相应的选项 curl_setopt($conn[$i], CURLOPT_URL, $url); curl_setopt($conn[$i], CURLOPT_HEADER, 0); curl_setopt($conn[$i], CURLOPT_RETURNTRANSFER, 1); curl_setopt($conn[$i], CURLOPT_TIMEOUT, 10); //302跳转 curl_setopt($conn[$i], CURLOPT_FOLLOWLOCATION, 1); // 增加句柄 curl_multi_add_handle;}$active = null;//防卡死写法:执行批处理句柄do { $mrc = curl_multi_exec;} while ($mrc == CURLM_CALL_MULTI_PERFORM);while ($active && $mrc == CURLM_OK) { if (curl_multi_select { do { $mrc = curl_multi_exec; } while ($mrc == CURLM_CALL_MULTI_PERFORM); }}foreach  { //获取当前解析的cURL的相关传输信息 $info = curl_multi_info_read; //获取请求头信息 $heards = curl_getinfo; var_dump; //获取输出的文本流 $res[$i] = curl_multi_getcontent; // 移除curl批处理句柄资源中的某个句柄资源 curl_multi_remove_handle; //关闭cURL会话 curl_close;}//关闭全部句柄curl_multi_close;

file_get_contents在连接不上的时候会提示Connection
refused,有时候会带来不便;另外,curl的性能比file_get_contents高,所以用curl重写file_get_contents

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php
curl用法总结》、《PHP网络编程技巧总结》、《PHP数组操作技巧大全》、《php字符串用法总结》、《PHP数据结构与算法教程》、《php程序设计算法总结》及《PHP运算与运算符用法总结》

function _file_get_contents { $ret = ""; $ch = curl_init; curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_FRESH_CONNECT, true); curl_setopt($ch, CURLOPT_TIMEOUT, 0); $buffer = curl_exec; if ($buffer === false || empty { $ret = ""; } else { $ret = $buffer; } return $ret;}

相关文章

Leave a Reply

电子邮件地址不会被公开。 必填项已用*标注