Задать вопрос
@Zimaell

Почему curl_getinfo не выдает content_type и http_code?

Использую один и от же код на разных серверах (первый виртуальный, второй выделенный), на первом выдает content_type и http_code, на втором ["content_type"]=> NULL ["http_code"]=> int(0), причем тестировалось на одних и тех же ip (в смысле прокси), на первом выдает ответ, на втором постоянно 0, в чём может быть проблема?
вот функция которую я использую, проверка прокси

function verify_work_proxy($arr_proxy){
	if(empty($arr_proxy)) return false;
	$proxy_work=array(); $proxy_broken=array();
	$multi=curl_multi_init();
	foreach($arr_proxy as $proxy){
		$ch=curl_init();
		curl_setopt($ch,CURLOPT_URL,'https://www..........');
		curl_setopt($ch,CURLOPT_HEADER,FALSE);
		curl_setopt($ch,CURLOPT_RETURNTRANSFER,TRUE);
		curl_setopt($ch,CURLOPT_FOLLOWLOCATION,FALSE);
		curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,10);
		curl_setopt($ch,CURLOPT_TIMEOUT,10);
		curl_setopt($ch,CURLOPT_PROXY,$proxy);
		curl_setopt($ch,CURLOPT_PROXYTYPE,0);
		curl_setopt($ch,CURLOPT_MAXREDIRS,1); 
    	curl_multi_add_handle($multi,$ch);
    	$channels[]=$ch;
		}
	$active=NULL; do{ $mrc=curl_multi_exec($multi,$active); } while($mrc==CURLM_CALL_MULTI_PERFORM);
	while($active && $mrc==CURLM_OK){ if(curl_multi_select($multi)==-1) usleep(200); do{ $mrc=curl_multi_exec($multi,$active); } while($mrc==CURLM_CALL_MULTI_PERFORM); }			
	foreach($channels as $channel){	
		$done=curl_multi_info_read($multi);
		$info=curl_getinfo($done['handle']);
		$proxy=$info["primary_ip"].':'.$info["primary_port"];
		if($info['http_code']==200 && $info['content_type']=='application/json' && $info['redirect_count']==0){
			$proxy_work[]=array('proxy'=>$proxy,'time_request'=>$info['total_time']);
			}else $proxy_broken[]=$proxy;
		curl_multi_remove_handle($multi,$done['handle']);
		}
	curl_multi_close($multi);
	return array('proxy_work'=>$proxy_work,'proxy_broken'=>$proxy_broken);
	}
  • Вопрос задан
  • 47 просмотров
Подписаться 1 Простой Комментировать
Пригласить эксперта
Ответы на вопрос 2
@Enj0y
curl_setopt($ch,CURLOPT_HEADER,true);
Ответ написан
@Nc_Soft
Может на втором ресурс забанен?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы