Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

как отловить падение срипта php

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> как отловить падение срипта php
Имя
Сообщение << Старые топики   Новые топики >>
как отловить падение срипта 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 - безуспешно….

Во всех случаях при "плохом" хосте скрипт падает целиком. Мне нужно, чтобы он хоть что-нибудь мог вернуть, вывести на экран… но главное - не упасть.
Post #: 1
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 падает с ошибкой, а опера работает бесконечно долго…
Post #: 2
RE: как отловить падение срипта php - 2010-02-27 00:37:31.796666   
AdReNaL1Ne

Сообщений: 8027
Оценки: 350
Присоединился: 2005-09-11 06:38:05
Приведи пример "ненормального" хоста
Post #: 3
RE: как отловить падение срипта php - 2010-02-27 08:24:02.780000   
Papa James

Сообщений: 438
Оценки: 0
Присоединился: 2009-12-07 13:36:18.370000
С аяксом могло не получиться потому, что домены разные
Post #: 4
RE: как отловить падение срипта php - 2010-03-01 10:50:01.433333   
raptor_alex

Сообщений: 4
Оценки: 0
Присоединился: 2010-02-26 16:47:30.330000
Можно поподробнее - что значит домены разные?
Post #: 5
RE: как отловить падение срипта php - 2010-03-01 10:51:40.570000   
raptor_alex

Сообщений: 4
Оценки: 0
Присоединился: 2010-02-26 16:47:30.330000
Привожу пример "ненормального" хоста. Если Вы сидите под корбиной и не имеете внешнего IP, то всё равно некоторый IP Вам присвоен. Вам - и ещё много кому. Узнать его можно в Яндексе, набрав IP. Так вот это и есть пример "ненормального" хоста.
Post #: 6
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
Post #: 7
Страниц:  [1]
Все форумы >> [Веб-программинг] >> как отловить падение срипта php







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.