Andreas
11.05.2009 - 17:01
Доброго времени суток! Возникла такая проблема. На серваке должен постоянно выполняться PHP код. Это нужно для проверки стабильности сети (ping, http-request и т.д.). Управляется это дело параметром из таблицы MySQL. То есть при желании цикл можно завершить. С завершением проблем нет, но есть проблема с запуском. Перед заходом в цикл должен осуществляться php-редирект на другую страничку, где находится пользовательское меню. Но редиректа не происходит, вернее, не происходит пока не завершится бесконечный цикл. Потом таки редиректит... Конечно, можно банально закрыть окно браузера и открыть новое с меню, но вопрос в удобстве пользования.
Так имеется ли вообще возможность редиректа ДО окончательного выполнения php кода? Если есть, то поделитесь, пожалуйста, господа единомышленники, своими соображениями на этот счет. Буду премного благодарен.
PHP |
<?php // Файлик redirector.php для редиректа на страницу с меню header("Location: index.php"); //Непосредственно, сам редирект
include("worker.php"); // Файлик с бесконечным (управляемым) циклом exit;
|
пробовал с Javascript, результат тот же...
Спасибо!
Спустя 15 минут, 5 секунд (11.05.2009 - 16:16) vasa_c написал(а):
PHP |
header('Location: index.php') ; header('Connection: close'); header('Content-Length: 0');
set_time_limit(0); ignore_user_abort(true);
@ob_end_flush(); flush();
include('worker.php'); |
Спустя 6 минут, 56 секунд (11.05.2009 - 16:23) jetistyum написал(а):
1. такой бесконечный скрипт - он же демон нужно выполнять в фоне. поищи статьи по поводу написания демонов на php
2. без спец. настройки интерпретатора такой скрипт упадет после max_execution_time
3. для достижимого результата твоим способом нужно поэксперементировать с отключением буферизации вывода - интерпретатор будет буферизировать вывод до полного завершения работы скрипта.
Спустя 4 минуты, 4 секунды (11.05.2009 - 16:27) Guest написал(а):
ПРЕОГРОМНЕЙШЕЕ Вам СПАСИБО за оперативный ответ!!!
Спустя 2 минуты, 5 секунд (11.05.2009 - 16:29) Guest написал(а):
насчет падения скрипта, это решаемо с помощью set_time_ limit() в самом теле цикла. Но про демонов почитаю, ибо получается профессиональнее. Спасибо!
Спустя 23 минуты, 43 секунды (11.05.2009 - 16:53) jetistyum написал(а):
Приходите ещё