基于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 相关文章推荐
在数据量大(超过10万)的情况下
Jan 15 PHP
PHP Memcached应用实现代码
Feb 08 PHP
php 修改zen-cart下单和付款流程以防止漏单
Mar 08 PHP
部署PHP项目应该注意的几点事项分享
Dec 20 PHP
一组PHP可逆加密解密算法实例代码
Jan 21 PHP
PHP函数in_array()使用详解
Aug 20 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
Linux+Nginx+MySQL下配置论坛程序Discuz的基本教程
Dec 23 PHP
yii2中结合gridview如何使用modal弹窗实例代码详解
Jun 12 PHP
PHP通过引用传递参数用法分析
Dec 01 PHP
PHP curl批处理及多请求并发实现方法分析
Aug 15 PHP
Laravel 创建可以传递参数 Console服务的例子
Oct 14 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
关于JSON以及JSON在PHP中的应用技巧
2013/11/27 PHP
php批量修改表结构实例
2017/05/24 PHP
三级下拉菜单的js实现代码
2011/05/23 Javascript
JS 两日期相减,获得天数的小例子(兼容IE,FF)
2013/07/01 Javascript
教你如何使用firebug调试功能了解javascript闭包和this
2015/03/04 Javascript
原生js实现的贪吃蛇网页版游戏完整实例
2015/05/18 Javascript
超级给力的JavaScript的React框架入门教程
2015/07/02 Javascript
浅析JavaScript 箭头函数 generator Date JSON
2016/05/23 Javascript
JSON与XML的区别对比及案例应用
2016/11/11 Javascript
详解jQuery中基本的动画方法
2016/12/14 Javascript
js实现点击按钮弹出上传文件的窗口
2016/12/23 Javascript
解决BootStrap Fileinput手机图片上传显示旋转问题
2017/06/01 Javascript
浅谈angular4生命周期钩子
2017/09/05 Javascript
关闭Vue计算属性自带的缓存功能方法
2018/03/02 Javascript
ionic2中使用自动生成器的方法
2018/03/04 Javascript
Angular学习教程之RouterLink花式跳转
2018/05/03 Javascript
JavaScript实现的DOM绘制柱状图效果示例
2018/08/08 Javascript
解决vue-cli单页面手机应用input点击手机端虚拟键盘弹出盖住input问题
2018/08/25 Javascript
vue计算属性get和set用法示例
2019/02/08 Javascript
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
p5.js实现简单货车运动动画
2019/10/23 Javascript
JavaScript缓动动画函数的封装方法
2020/11/25 Javascript
[06:38]DOTA2怒掀电竞风暴 2013Chinajoy
2013/07/27 DOTA
Python2.5/2.6实用教程 入门基础篇
2009/11/29 Python
Python判断文本中消息重复次数的方法
2016/04/27 Python
python自动发送邮件脚本
2018/06/20 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
Django之提交表单与前后端交互的方法
2019/07/19 Python
Python 实用技巧之利用Shell通配符做字符串匹配
2019/08/23 Python
小学生家长评语大全
2014/02/10 职场文书
融资租赁计划书
2014/04/29 职场文书
人力资源本科毕业生求职信
2014/06/04 职场文书
2014年大堂经理工作总结
2014/11/21 职场文书
2015年超市工作总结
2015/04/09 职场文书
适合毕业生创业的项目怎么找?
2019/08/08 职场文书
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL