基于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 相关文章推荐
如何使用PHP获取网络上文件
Oct 09 PHP
header中Content-Disposition的作用与使用方法
Jun 13 PHP
基于php实现长连接的方法与注意事项的问题
May 10 PHP
php中getservbyport与getservbyname函数用法实例
Nov 18 PHP
php使用Cookie实现和用户会话的方法
Jan 21 PHP
php-redis中的sort排序函数总结
Jul 08 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
Yii CFileCache 获取不到值的原因分析
Feb 08 PHP
thinkPHP5.0框架API优化后的友好性分析
Mar 17 PHP
Laravel中Facade的加载过程与原理详解
Sep 22 PHP
通过代码实例解析PHP session工作原理
Dec 11 PHP
THINKPHP-Apache服务器中使用Alias虚拟目录URL重写 隐藏index.php
Mar 09 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
解决phpmyadmin 乱码,支持gb2312和utf-8
2006/11/20 PHP
ThinkPHP后台首页index使用frameset时的注意事项分析
2014/08/22 PHP
php正则替换处理HTML页面的方法
2015/06/17 PHP
使用js操作cookie的一点小收获分享
2013/09/03 Javascript
关于javascript event flow 的一个bug详解
2013/09/17 Javascript
获取鼠标在div中的相对位置的实现代码
2013/12/30 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
2014/01/15 Javascript
Javascript玩转继承(一)
2014/05/08 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
微信小程序开发之录音机 音频播放 动画实例 (真机可用)
2016/12/08 Javascript
JS实现电商放大镜效果
2017/08/24 Javascript
详解Vue webapp项目通过HBulider打包原生APP
2018/06/29 Javascript
Vue实现双向绑定的原理以及响应式数据的方法
2018/07/02 Javascript
基于Vue+element-ui 的Table二次封装的实现
2018/07/20 Javascript
基于layui实现高级搜索(筛选)功能
2019/07/26 Javascript
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
vue+elementUI动态生成面包屑导航教程
2019/11/04 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
python2.7的编码问题与解决方法
2016/10/04 Python
python2.7实现邮件发送功能
2018/12/12 Python
Python设计模式之观察者模式原理与用法详解
2019/01/16 Python
Python集中化管理平台Ansible介绍与YAML简介
2019/06/12 Python
Django 1.10以上版本 url 配置注意事项详解
2019/08/05 Python
python计算n的阶乘的方法代码
2019/10/25 Python
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
使用phonegap进行提示操作的具体方法
2017/03/30 HTML / CSS
成功的餐厅经营创业计划书
2014/01/15 职场文书
高二历史教学反思
2014/01/25 职场文书
《珍珠泉》教学反思
2014/02/20 职场文书
企业党员一句话承诺
2014/05/30 职场文书
应届大学生求职信
2014/07/20 职场文书
男性健康日的活动方案
2014/08/18 职场文书
五月的鲜花活动方案
2014/08/21 职场文书
2014年社区矫正工作总结
2014/11/18 职场文书
自定义函数实现单词排序并运用于PostgreSQL(实现代码)
2021/04/22 PostgreSQL