基于PHP CURL用法的深入分析

  如下所示:

  

复制代码 代码如下:

  <?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);

  ?>