Делаю получение контента вордстата яндекса так PHP: $ch = curl_init (); curl_setopt ($ch , CURLOPT_URL , $url); curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7"); curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 ); $content = curl_exec($ch); curl_close($ch); после 20 запросов с sleep(2) - мой ip наверное в игноре. интересует как сделать получение контента вордстата яндекса через прокси? список прокси есть
при curl_setopt($curl, CURLOPT_PROXY, "прокси:порт"); вроде как ошибок не выдает, но и в $content пусто. без curl_setopt($curl, CURLOPT_PROXY, "прокси:порт"); работает. "прокси:порт" - в нем причина?
PHP: $url="http://meta.ua"; $proxy_host='201.6.3.241'; $proxy_port='80'; $ch = curl_init (); curl_setopt ($ch , CURLOPT_URL , $url); curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7"); $handle = fsockopen($proxy_host, $proxy_port, $errno, $errstr, $timeout); if (!$handle) { echo "Not open Proxy - errno=$errno,errstr=$errstr<br>"; return 0; } else { echo "Proxy Open<br>"; } curl_setopt($ch, CURLOPT_PROXY, "$proxy_host:$proxy_port"); print curl_getinfo($ch,CURLINFO_HTTP_CODE)."<br>"; print $content = curl_exec($ch); curl_close($ch); получаю титл "302 Found" если без curl_setopt($ch, CURLOPT_PROXY, "$proxy_host:$proxy_port"); все работает. пробовал несколько разных прокси - таже история. может прокси подгулявшие? кому не трудно попробуйте код у себя (по возможности с 100% робочим прокси, если у кого есть)
как сделать PHP: $handle = fsockopen($proxy_host, $proxy_port, $errno, $errstr, $timeout); if (!$handle) { echo "Not open Proxy - errno=$errno,errstr=$errstr<br>"; return 0; } else { echo "Proxy Open<br>"; } через curl?
Приведенный вами код рабочий, попробуйте прокси с этой странички - http://www.samair.ru/proxy/proxy-01.htm А определить прокси "годный" или нет, я думаю можно либо анализируя заголовки ответа сервера - CURLOPT_HEADER (можно CURLOPT_FAILONERROR) или взять 1-2 обычно всегда доступных ресурса (например google.com) и сделать через выбранную вами проксю предварительную проверку на ответ сервера (200 или нет) PHP: // предварительно проверяем выбранную проксю $proxy ='111.111.111:80'; $test_url = 'http://google.com'; $c = curl_init (); curl_setopt ($c , CURLOPT_URL , $test_url); curl_setopt ($c , CURLOPT_USERAGENT , "Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7"); curl_setopt($c, CURLOPT_PROXY, $proxy); curl_setopt($c, CURLOPT_HEADER, 1); curl_setopt($c, CURLOPT_NOBODY, 1); curl_setopt($c, CURLOPT_RETURNTRANSFER, 1); $curl_error = curl_error($c); $header_response = curl_exec($c); curl_close($c); if (strpos($header_response, '200 OK') !== false) { // делаем запрос на [url=http://meta.ua]http://meta.ua[/url] } else { if (!empty($header_response)) { echo 'Ответ сервера - неудача'; } else { echo $curl_error; } } Я бы сделал как-то так. Если что, думаю профи меня поправят.