olgatcpip
11.09.2009 - 23:03
Здравствуйте.
Такая проблема.
Мне нужно было узнать есть ли файлик 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=', '){ $form = ""; $href = $url.$folder."/log.txt"; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $href); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // тут я и застряла. как спросить открывается ли файл, а не загружать страницу (файл) 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($curl, CURLOPT_HEADER, 1); curl_setopt($curl, CURLOPT_NOBODY, 1); curl_setopt($curl, CURLOPT_TIMEOUT, 5); curl_setopt($curl, CURLOPT_FAILONERROR, 1); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $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 поставил потому что у тебя написано так
Если сервер нормально откликается (когда
работает), то вообще секунды 2-3 хватит, а если тупит то поставь 10-12.
_____________
Ласковое слово и кошке приятно... Плюсик в карму сойдет wink.gif
*smarty дока - новая любовь
Моё рукотворение ругайте, хвалите smile.gif
Веду маленький
блогв этом блоге публикую новые работы
WMR217126627282 wink.gif