基于PHP CURL用法的深入分析


Posted in PHP onJune 09, 2013

如下所示:

<?php
header('Context-Type:text/html;charset:gb2312;');
$urls = array(
 'http://www.baidu.com/',
 'http://www.pconline.com.cn/',
 'http://www.163.com/'
);
$options = array(
 CURLOPT_RETURNTRANSFER=>1,
 CURLOPT_FOLLOWLOCATION=>1, 
 CURLOPT_HEADER => false, 
 CURLOPT_HTTPHEADER => array(
  'Accept'=>' text/html, application/xhtml+xml,',
  'Accept-Encoding'=>' gzip, deflate',
  'Accept-Language'=>' zh-CN',
  'Connection'=>' Keep-Alive', 
  'User-Agent'=>' Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)',
 ),
);
function curlMultiRequest($urls,$options=array()){
 $ch = array();
 $results = array();
 $mh = curl_multi_init();
 foreach($urls as $key=>$val){
  $ch[$key] = curl_init();
  if($options){
   curl_setopt_array($ch[$key],$options);
  }  
  curl_setopt($ch[$key],CURLOPT_URL,$val);
  curl_multi_add_handle($mh,$ch[$key]);
 } $running = null;
 do{
  curl_multi_exec($mh,$running);
 }while($running>0); 
 foreach($ch as $key=>$val){
  //$results[$key] = iconv('gb2312','utf-8',curl_multi_getcontent($val));
  $results[$key] = curl_multi_getcontent($val);
  curl_multi_remove_handle($mh,$val);
  curl_close($val);
 } 
 curl_multi_close($mh); 
 return $results;
}
$results = curlMultiRequest($urls,$options);
print_r($results);
?>
PHP 相关文章推荐
dedecms模版制作使用方法
Apr 03 PHP
php+mysql开源XNA 聚合程序发布 下载
Jul 13 PHP
php Undefined index的问题
Jun 01 PHP
php全排列递归算法代码
Oct 09 PHP
php比较两个绝对时间的大小
Jan 31 PHP
修改destoon会员公司的伪静态中的com目录的方法
Aug 21 PHP
PHP rsa加密解密使用方法
Apr 27 PHP
php mysql获取表字段名称和字段信息的三种方法
Nov 13 PHP
PHP 搜索查询功能实现
Nov 29 PHP
PHP常用算法和数据结构示例(必看篇)
Mar 15 PHP
多个Laravel项目如何共用migrations详解
Sep 25 PHP
laravel5.6实现数值转换
Oct 23 PHP
探讨PHP使用eAccelerator的API开发详解
Jun 09 #PHP
windows环境下php配置memcache的具体操作步骤
Jun 09 #PHP
探讨捕获php错误信息方法的详解
Jun 09 #PHP
使用迭代器 遍历文件信息的详解
Jun 08 #PHP
PHP在不同页面间传递Json数据示例代码
Jun 08 #PHP
深入理解:XML与对象的序列化与反序列化
Jun 08 #PHP
探讨:使用XMLSerialize 序列化与反序列化
Jun 08 #PHP
You might like
PHP中Date获取时间不正确怎么办
2008/06/05 PHP
php print EOF实现方法
2009/05/21 PHP
PHP 图片上传实现代码 带详细注释
2010/04/29 PHP
PHP 线程安全与非线程安全版本的区别深入解析
2013/08/06 PHP
用PHP解决的一个栈的面试题
2014/07/02 PHP
php校验表单检测字段是否为空的方法
2015/03/20 PHP
laravel框架中路由设置,路由参数和路由命名实例分析
2019/11/23 PHP
validator验证控件使用代码
2010/11/23 Javascript
JavaScript中的常见问题解决方法(乱码,IE缓存,代理)
2013/11/28 Javascript
window.showModalDialog()返回值的学习心得总结
2014/01/07 Javascript
Javascript异步编程模型Promise模式详细介绍
2014/05/08 Javascript
纯js实现重发验证码按钮倒数功能
2015/04/21 Javascript
JS清除文本框内容离开在恢复及鼠标离开文本框时触发js的方法
2016/01/12 Javascript
JavaScript实现复制内容到粘贴板代码
2016/03/31 Javascript
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
vue2.0路由切换后页面滚动位置不变BUG的解决方法
2018/03/14 Javascript
关于Vue组件库开发详析
2018/07/01 Javascript
关于Vue项目跨平台运行问题的解决方法
2018/09/18 Javascript
vue路由切换之淡入淡出的简单实现
2019/10/31 Javascript
详解js location.href和window.open的几种用法和区别
2019/12/02 Javascript
vue项目实现图片上传功能
2019/12/23 Javascript
Python中类型关系和继承关系实例详解
2015/05/25 Python
python中函数传参详解
2016/07/03 Python
Python实现求解一元二次方程的方法示例
2018/06/20 Python
Python3+OpenCV2实现图像的几何变换(平移、镜像、缩放、旋转、仿射)
2019/05/13 Python
python中format函数如何使用
2020/06/22 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
CSS3 Media Queries(响应式布局可以让你定制不同的分辨率和设备)
2013/06/06 HTML / CSS
初中三年学生的学习自我评价
2013/11/13 职场文书
生产车间班组长岗位职责
2014/01/06 职场文书
物流专员岗位职责
2014/02/17 职场文书
研究生毕业自我鉴定范文
2014/03/27 职场文书
《大禹治水》教学反思
2014/04/27 职场文书
计生专干事迹
2014/05/28 职场文书
学校捐款活动总结
2015/05/09 职场文书