基于PHP CURL用法的深入分析

yipeiwu_com6年前PHP代码库
如下所示:
复制代码 代码如下:

<?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魔术方法__GET、__SET使用实例

__get()  - 读取不可访问属性的值时,__get() 会被调用。 __set()  - 在给不可访问属性赋值时,__set() 会被调用。 复制代码 代码如下: <?...

PHP对象实例化单例方法

PHP实例化对象单例的方法: 三私一公:2个私有方法,1个私有属性,1个公共方法   private function __construct(){} //不可以继承构造方法   p...

php简单防盗链验证实现方法 原创

这里分析了php的简单防盗链实现方法。分享飞大家供大家参考。具体如下: index.php页面如下: <html> <head> <meta http-...

Asp.net 文本框全选的实现

一、鼠标滑过textbox全选 前台: <asp:TextBox runat="server" onMouseOver="this.focus();this.select()"&g...

php关闭warning问题的解决方法

error_reporting 设定错误讯息回报的等级 2047我记得应该是E_ALL。 php.ini 文件中有许多配置设置。您应当已经设置好自己的php.ini 文件并把它放在合适的...