基于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设计模式 State (状态模式)
Jun 26 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 PHP
php 中英文语言转换类代码
Aug 11 PHP
解析htaccess伪静态的规则
Jun 18 PHP
php简单smarty入门程序实例
Jun 11 PHP
Smarty简单生成表单元素的方法示例
May 23 PHP
laravel学习教程之存取器
Jul 30 PHP
PHP与JavaScript针对Cookie的读写、交互操作方法详解
Aug 07 PHP
PHP异步进程助手async-helper
Feb 05 PHP
CI框架附属类用法分析
Dec 26 PHP
基于thinkphp6.0的success、error实现方法
Nov 05 PHP
php文件上传原理与实现方法详解
Dec 20 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面向对象全攻略 (四)构造方法与析构方法
2009/09/30 PHP
PHP迭代器的内部执行过程详解
2013/11/12 PHP
PHP清除字符串中所有无用标签的方法
2014/12/01 PHP
php实现数组中索引关联数据转换成json对象的方法
2015/07/08 PHP
php代码架构的八点注意事项
2016/01/25 PHP
Yii2使用dropdownlist实现地区三级联动功能的方法
2016/07/18 PHP
JS 自动安装exe程序
2008/11/30 Javascript
JS获取IP、MAC和主机名的五种方法
2013/11/14 Javascript
查找Oracle高消耗语句的方法
2014/03/22 Javascript
JQuery设置时间段下拉选择实例
2014/12/30 Javascript
简单谈谈JavaScript的同步与异步
2015/12/31 Javascript
利用原生JS与jQuery实现数字线性变化的动画
2017/02/24 Javascript
vue2笔记 — vue-router路由懒加载的实现
2017/03/03 Javascript
通俗解释JavaScript正则表达式快速记忆
2017/08/23 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
Vue列表渲染的示例代码
2018/11/01 Javascript
微信小程序如何连接Java后台
2019/08/08 Javascript
jQuery实现验证用户登录
2019/12/10 jQuery
JS面向对象编程基础篇(三) 继承操作实例详解
2020/03/03 Javascript
解决VUE自定义拖拽指令时 onmouseup 与 click事件冲突问题
2020/07/24 Javascript
python实现模拟按键,自动翻页看u17漫画
2015/03/17 Python
python分治法求二维数组局部峰值方法
2018/04/03 Python
python实现的多任务版udp聊天器功能案例
2019/11/13 Python
django表单中的按钮获取数据的实例分析
2020/07/31 Python
Manuka Doctor美国官网:麦卢卡蜂蜜和蜂毒护肤
2016/12/25 全球购物
Foot Locker意大利官网:全球领先的运动鞋和服装零售商
2017/05/30 全球购物
简述数据库的设计过程
2015/06/22 面试题
设计模式的基本要素是什么
2014/04/21 面试题
J2EE面试题集锦(附答案)
2013/08/16 面试题
中职生自荐信
2013/10/13 职场文书
前处理组长岗位职责
2014/03/01 职场文书
预备党员转正思想汇报
2014/09/26 职场文书
寻衅滋事罪辩护词
2015/05/21 职场文书
护士旷工检讨书
2015/08/15 职场文书
原生JS封装vue Tab切换效果
2021/04/28 Vue.js
解决mysql的int型主键自增问题
2021/07/15 MySQL