[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Как пользоваться curl
olgatcpip
Здравствуйте.

Такая проблема.

Мне нужно было узнать есть ли файлик log.txt на сайте. И если есть, то выводить строку, если нет, то не выводить. Делаю так:
PHP
function download_wm_log($url,$folder,$z=', '){
$form "";
$href $url.$folder."/log.txt";
if(
fopen($href"r"))
    
$form .= "<a href=\"/get_toop_log.php?url=".urlencode($url)."&folder=".urlencode($folder)."\">Скачать лог</a>".$z;
return 
$form;
}
Но появилась проблема. Если сайт недоступен/не работает, то скрипт жутко долго отрабатывает, так как долго пытается открыть сайт.
Мне кажется это легко исправиь с помощью CURL, потому что там можно задать время операции.
PHP
function download_wm_log($url,$folder,$z=',&nbsp;'){
$form "";
$href $url.$folder."/log.txt";
$ch curl_init();
curl_setopt($chCURLOPT_URL$href);
curl_setopt($chCURLOPT_TIMEOUT5);
curl_setopt($chCURLOPT_RETURNTRANSFERtrue);
// тут я и застряла. как спросить открывается ли файл, а не загружать страницу (файл)            
if(????)
    
$form .= "<a href=\"/get_toop_log.php?url=".urlencode($url)."&folder=".urlencode($folder)."\">Скачать лог</a>".$z;
curl_close($ch);
return 
$form;
}




Спустя 4 минуты, 39 секунд (11.09.2009 - 22:08) kirik написал(а):
Попробуй этот код, выдрал из движка.

PHP
function checkStatus($url)
{
    
$curl curl_init($url);
    
curl_setopt($curlCURLOPT_HEADER1);
    
curl_setopt($curlCURLOPT_NOBODY1);
    
curl_setopt($curlCURLOPT_TIMEOUT5);
    
curl_setopt($curlCURLOPT_FAILONERROR1);
    
curl_setopt($curlCURLOPT_RETURNTRANSFER1);
    
$status curl_exec($curl);
    
curl_close($curl);
    return !empty(
$status);
}

$url ='тут урл';
if(
checkStatus($url))
    echo 
'Все ОК, можно качать!';

Спустя 8 минут, 24 секунды (11.09.2009 - 22:16) olgatcpip написал(а):
kirik, спасибо.
Вопрос. А 5 секунд достаточно?

Спустя 9 минут, 36 секунд (11.09.2009 - 22:26) kirik написал(а):
У меня 10 стоит.. 5 поставил потому что у тебя написано так smile.gif Если сервер нормально откликается (когда работает), то вообще секунды 2-3 хватит, а если тупит то поставь 10-12.


_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький блог
в этом блоге публикую новые работы
WMR217126627282 wink.gif

Быстрый ответ:

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