[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Беда какя-то с cURL
stacy
Дома достучалась до сайта www.news.tut.by с помощью библиотеки Curl Пришла на работу, запустила скрипт - не работает.
Выдает ошибку: Operation timed out after 30 seconds with 0 bytes received. Может нужно дополнительную опцию поставить. Помогите плиииз.
Вот код:

PHP
function http_transaction$url$params=""$cookie=""$ch=0$user=""$pass=""$header=""$method=''$user_agent"Mozilla/4.0 (compatible; MSIE 6.0; Windows 98) Explorer/7.0") {
$header [] = "Accept: text/html;q=0.9, text/plain;q=0.8, image/png, */*;q=0.5" ;
$header [] = "Accept_charset: windows-1251, utf-8, utf-16;q=0.6, *;q=0.1";
$header [] = "Accept_encoding: identity";
$header [] = "Accept_language: ru,en-us,en;q=0.5";
$header [] = "Connection: close";
$header [] = "Cache-Control: no-store, no-cache, must-revalidate";
$header [] = "Keep_alive: 300";
$header [] = "Expires: Thu, 01 Jan 1970 00:00:01 GMT";
$header [] = "Accept-Language: ru,en-us;q=0.7,en;q=0.3";
$Debug=true;
if ( 
$ch==$ch curl_init();
if ( 
$Debug ) print "CH: $ch<br>\n";
curl_setopt($chCURLOPT_URLtrim($url));
curl_setopt($chCURLOPT_TIMEOUT30 );
curl_setopt($chCURLOPT_LOW_SPEED_LIMIT);
curl_setopt($chCURLOPT_LOW_SPEED_TIME100000 );


curl_setopt($chCURLOPT_VERBOSE,1);
curl_setopt($chCURLOPT_HEADER,1);
curl_setopt($curlCURLOPT_NOBODY1);
curl_setopt($curlCURLOPT_FAILONERROR1);
curl_setopt($chCURLOPT_HTTPHEADER$header);
//curl_setopt($ch, CURLOPT_REFERER,$HTTP_REFERER);
curl_setopt($chCURLOPT_FOLLOWLOCATION1);
curl_setopt($chCURLOPT_VERBOSE1);
if ( 
$Debug ) print "REFERER: $HTTP_REFERER<br>\n";
if ( 
$cookie!="" ) {
curl_setopt($chCURLOPT_COOKIE$cookie );
if ( 
$Debug ) print "COOKIE: $cookie<br>\n";
}

if ( 
$method=='GET' ) {
$url $url $params;
curl_setopt($chCURLOPT_POST,0);
curl_setopt($chCURLOPT_POSTFIELDS,"");
}
else {
curl_setopt($chCURLOPT_POST,1);
curl_setopt($chCURLOPT_POSTFIELDS,$params);
$method "POST";
}
if ( 
$Debug ) print "URL: $url<br>\n";
if ( 
$Debug ) print "PARAM: $params<br>\n";
if ( 
$Debug ) print "METHOD: $method<br>\n";
if ( 
$Debug ) print "USERAGENT: $user_agent<br>\n";

curl_setopt($chCURLOPT_SSL_VERIFYHOST2);
curl_setopt($chCURLOPT_SSL_VERIFYPEERFALSE); // this line makes it work under https

curl_setopt($chCURLOPT_USERAGENT$user_agent);
curl_setopt($chCURLOPT_RETURNTRANSFER,1);
 
curl_setopt($chCURLOPT_NOPROGRESS,);

curl_setopt($chCURLOPT_RANGE,"1-100000" );
curl_setopt($chCURLOPT_READFUNCTION"read_callback" );

curl_setopt($chCURLOPT_COOKIEJAR"cook");
curl_setopt($chCURLOPT_COOKIEFILE"cook");


if ( 
$header!="" curl_setopt ($chCURLOPT_HTTPHEADER$header );
if ( 
$user!="" curl_setopt($chCURLOPT_USERPWD"$user:$pass" );
if ( 
$Debug ) print "<pre>Header: ".print_r$header )."<pre><br>\n";

flush();

$result=curl_exec ($ch);

if ( 
$Debug ) print "Error: ( ".curl_errno $ch )." )".curl_error $ch )."<br>\n";

curl_close($ch);

return( 
$result );
}


 
$url 'http://news.tut.by/rss/health.rss';       //адрес RSS ленты

$rss = @file_get_contents($url);        //получаем содержимое RSS лент в виде одной строки

if ($rss) {     
        
preg_match_all("/title>[^>]+>/"$rss$title);         //парсим титлы
        
preg_match_all("/<description>[^<]+<\/description>/"$rss$description);              //парсим дескрипшены
        
preg_match_all('/<link>[^<]+<\/link>/'$rss$link);              //парсим дескрипшены
        
        
$count count($title[0])-1;    //число проходов цикла.
        
        
for ($i=6$i $count-1$i++) {
                echo 
'<h1>'.substr($title[0][$i+1], 6, -8).'</h1>';      //выводим на печать заголовок статьи 
                
echo substr($description[0][$i], 13, -14)."<BR/>";      //выводим на печать текст статьи
                
echo substr($link[0][$i+1], 6, -7)."<BR/>";             //выводим на печать адрес статьи
                
$addr substr($link[0][$i+1], 6, -7);
                
$addr iconv("utf-8""windows-1251"$addr);  
                
//$new = http_transaction($addr);
                
$new http_transaction('http://www.news.tut.by'); // к примеру
                
echo $new;
                  
$pos strpos($new'<div id="body80">');
                
$new substr($new, ($pos+17));
                
$pos strpos($new'<div class="authorAddon">');
                
$new substr($new0$pos);
                
$nulled iconv("windows-1251""utf-8"$new); 
                echo 
$nulled."</table>";
        }
} else {
        echo 
'<font color="red">Ошибка парсинга '.$url.'</font>';       //выводим ошибку если file_get_contents() вернула false
}






Спустя 10 часов, 41 минута, 41 секунда (21.09.2009 - 19:47) kirik написал(а):
А сам сайт через браузер открывается?

Спустя 16 часов, 3 минуты, 9 секунд (22.09.2009 - 11:50) stacy написал(а):
Цитата (kirik @ 21.09.2009 - 16:47)
А сам сайт через браузер открывается?

Прабла решилась. Оказывается на серваке не был настроен доступ на tut.by и другие некоторые сайты. Сэнкс.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.