Подскажите по fsockopen

aanvale

Новичок
Строка fsockopen("localhost", 81);
Вылазит ошибка по таймауту, но ведь функция должна вернуть false? Или это от настроек php зависит? Проводил опыты на Денвере. Хотел использовать в конструкции if...else.
Строка fsockopen("localhost", 80); работает нормально
 

aanvale

Новичок
Вот код:
<?php
if (fsockopen("localhost", 81)) {
echo 'Соединение установлено';
} else {
echo 'Не могу установить соединение';
}
?>
Вот ошибка:

Warning: fsockopen() [function.fsockopen]: unable to connect to localhost:81 (Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера. ) in U:\home\localhost\www\1\test.php on line 2

Fatal error: Maximum execution time of 30 seconds exceeded in U:\home\localhost\www\1\test.php on line 2
Т.е. сам РНР ругается получается, а вроде бы как должно выполнить строку в else.
 

radioheaded

PHP нуб
Ты не ответил на вопрос. Что возвращает функция?

PHP:
var_dump(fsockopen("localhost", 81));
Warning вполне логичный, что тебя удивляет? А фатал говорит о том, что время выполнения твоего скрипта вышло за допустимые конфигом рамки.

Изучи параметры fsockopen, там можно задать таймаут.
 

aanvale

Новичок
Функция возвращает bool(false), что правильно как я и думал, удивляет меня Warning. Просто думал, что возвращает функция false ну и работает скрипт дальше, а тут ещё Warning вылез..
Но спасибо, узнал что такое var_dump. Щас буду подавление ошибок изучать.
 
Сверху