как отловить падение срипта php
Пользователи, просматривающие топик: none
|
Зашли как: Guest
|
Имя |
Сообщение |
<< Старые топики Новые топики >> |
|
|
как отловить падение срипта php - 2010-02-26 17:13:40.390000
|
|
|
raptor_alex
Сообщений: 4
Оценки: 0
Присоединился: 2010-02-26 16:47:30.330000
|
есть такой скрипт ——————————————————————————————– <?php function correcthtml($host) { $host1="http://".$host; $file = fopen ($host1, "r") or die("Shit!!!"); $str = ""; while (!feof ($file)){ $str .= fread ($file, 512); } fclose ($file); //echo $str; if(strlen($str)!=0) return 1; else return 0; } //echo correcthtml("www.yandex.ru"); //$a=@correcthtml("www.yandex.ru"); $a=@correcthtml("178.176.60.168"); if(isset($a)) echo $a; else echo "0"; ?> ————————————————————————————- КАК ОТЛОВИТЬ ПАДЕНИЕ СКРИПТА? Когда функции correcthtml передаётся нормальный хост - типа яндекса или гугла, то всё срабатывает и возвращается 1. Когда же передаётся хост ненормальный, типа своего собственного текущего невыделенного, то всё падает. Т.е. я хочу, чтобы при ненормальном хосте функция накрывалась - но скрипт продолжал работу и выдавал, например, 0. @ - не помогает. try/catch - не помогает отлавливать значение функции fopen - не помогает set_time_limit() просто не работает привожу все другие попытки в порядке очереди ————————————————попытка 1-ая (try/catch)———————————————————————- <?php function correcthtml($host) { $host1="http://".$host; try { $file = fopen ($host1, "r"); throw new Exception("Дурак"); } catch (Exception $e) { echo $e->getMessage(); return 0; } $str = ""; while (!feof ($file)){ $str .= fread ($file, 512); } fclose ($file); //echo $str; if(strlen($str)!=0) return 1; else return 0; } echo correcthtml("www.yandex.ru"); //echo correcthtml("178.176.60.168"); ?> ————————————————попытка 2-ая (fopen)———————————————————————- <?php function correcthtml($host) { $host1="http://".$host; $file = fopen ($host1, "r"); if($file==0) return 0; $str = ""; while (!feof ($file)){ $str .= fread ($file, 512); } fclose ($file); //echo $str; if(strlen($str)!=0) return 1; else return 0; } //echo correcthtml("www.yandex.ru"); //$a=@correcthtml("www.yandex.ru"); $a=@correcthtml("178.176.60.168"); if(isset($a)) echo $a; echo "0"; ?> ————————————————попытка 3-ая (try/catch)———————————————————————- Пытался повесить try/catch на саму функцию correcthtml - безуспешно…. Во всех случаях при "плохом" хосте скрипт падает целиком. Мне нужно, чтобы он хоть что-нибудь мог вернуть, вывести на экран… но главное - не упасть.
|
|
|
RE: как отловить падение срипта php - 2010-02-26 17:24:50.136666
|
|
|
raptor_alex
Сообщений: 4
Оценки: 0
Присоединился: 2010-02-26 16:47:30.330000
|
Кстати, я ещё пытался Объектом xmlhttprequest ajax-овским посылать асинхронный запрос к этому скрипту и в случае провала делать Alert. Так вот на локалхосте такой фокус проходит, а на хостинге google chorme падает с ошибкой, а опера работает бесконечно долго…
|
|
|
RE: как отловить падение срипта php - 2010-02-27 00:37:31.796666
|
|
|
AdReNaL1Ne
Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
|
Приведи пример "ненормального" хоста
|
|
|
RE: как отловить падение срипта php - 2010-02-27 08:24:02.780000
|
|
|
Papa James
Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
|
С аяксом могло не получиться потому, что домены разные
|
|
|
RE: как отловить падение срипта php - 2010-03-01 10:50:01.433333
|
|
|
raptor_alex
Сообщений: 4
Оценки: 0
Присоединился: 2010-02-26 16:47:30.330000
|
Можно поподробнее - что значит домены разные?
|
|
|
RE: как отловить падение срипта php - 2010-03-01 10:51:40.570000
|
|
|
raptor_alex
Сообщений: 4
Оценки: 0
Присоединился: 2010-02-26 16:47:30.330000
|
Привожу пример "ненормального" хоста. Если Вы сидите под корбиной и не имеете внешнего IP, то всё равно некоторый IP Вам присвоен. Вам - и ещё много кому. Узнать его можно в Яндексе, набрав IP. Так вот это и есть пример "ненормального" хоста.
|
|
|
RE: как отловить падение срипта php - 2010-03-01 12:07:24.760000
|
|
|
Papa James
Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
|
quote:
ORIGINAL: raptor_alex Можно поподробнее - что значит домены разные? Пытаешься послать кроссдоменный запрос - то есть запрос на другой домен. Например, твой домен google.com, а ты аяксом посылаешь запрос на yandex.ru
|
|
|
|
|