PHP utilise le proxy curl pour implémenter la méthode de saisie de données

墨辰丷
Libérer: 2023-03-28 07:24:02
original
1501 Les gens l'ont consulté

Cet article présente principalement la méthode d'utilisation du proxy curl pour capturer des données en PHP. Il analyse les compétences opérationnelles de PHP utilisant le proxy curl pour capturer des données sous forme d'exemples. Les amis dans le besoin peuvent se référer à

. Cet article L'exemple décrit comment PHP utilise le proxy curl pour capturer des données. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :

<?php
define ( &#39;IS_PROXY&#39;, true ); //是否启用代理
function async_get_url($url_array, $wait_usec = 0)
{
  if (!is_array($url_array))
    return false;
  $wait_usec = intval($wait_usec);
  $data  = array();
  $handle = array();
  $running = 0;
  $mh = curl_multi_init(); // 开启多线程
  $i = 0;
  foreach($url_array as $url) {
    $ch = curl_init();
    if (IS_PROXY) {
    //以下代码设置代理服务器
    //代理服务器地址http://www.cnproxy.com/proxy1.html !!Hong Kong, China的速度比较好
    curl_setopt ($ch, CURLOPT_PROXY,&#39;110.4.12.170:80&#39; );
    }
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return don&#39;t print
    curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间
    curl_setopt($ch, CURLOPT_USERAGENT, &#39;Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)&#39;);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 302 redirect
    curl_setopt($ch, CURLOPT_MAXREDIRS, 7); //HTTp定向级别
    curl_multi_add_handle($mh, $ch); // 把 curl resource 放进 multi curl handler 里
    $handle[$i++] = $ch;
  }
  /* 执行 */
  do {
    $mrc = curl_multi_exec($mh, $running);
    if ($wait_usec > 0) /* 每个 connect 要间隔多久 */
      usleep($wait_usec); // 250000 = 0.25 sec
  } while ($mrc == CURLM_CALL_MULTI_PERFORM);
  while ($running && $mrc == CURLM_OK) {
    if (curl_multi_select($mh) != -1) {
      do {
        $mrc = curl_multi_exec($mh, $running);
      } while ($mrc == CURLM_CALL_MULTI_PERFORM);
    }
  }
  /* 读取资料 */
  foreach($handle as $i => $ch) {
    $content = curl_multi_getcontent($ch);
    $data[$i] = (curl_errno($ch) == 0) ? $content : false;
  }
  /* 移除 handle*/
  foreach($handle as $ch) {
    curl_multi_remove_handle($mh, $ch);
  }
  curl_multi_close($mh);
  return $data;
}
$urls = array(&#39;http://map.baidu.com&#39;);
$re = async_get_url($urls);
echo $re[0];
?>
Copier après la connexion

Ce qui précède est l'intégralité du contenu de cet article , j'espère que cela sera utile pour aider l'apprentissage de chacun.


Recommandations associées :

Comment utiliser curl pour envoyer des requêtes en PHP

php implémente la méthode d'utilisation de curl pour simuler l'IP et la source d'accès

PHP implémente curl ou file_get_contents Comment obtenir la page qui nécessite une autorisation

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal