Maison > Article > développement back-end > PHP utilise le proxy curl pour implémenter la méthode de saisie de données
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 ( 'IS_PROXY', 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,'110.4.12.170:80' ); } curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // return don't print curl_setopt($ch, CURLOPT_TIMEOUT, 30); //设置超时时间 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)'); 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('http://map.baidu.com'); $re = async_get_url($urls); echo $re[0]; ?>
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!