как осуществить

Статус
В этой теме нельзя размещать новые ответы.

ivashka

Полезный
Регистрация
16 Май 2007
Сообщения
151
Реакции
15
Как сделать так, что бы когда пользователь перейдет на определенную страницу, запустился пхп скрипт, но пользователь ответа не получал, тоесть скрипт исполнится, но результаты браузеру не передадутся. Заранее благодарен.
 
Надо исключить из скрипта все функции, осуществляющие вывод, такие как echo, print и тд.

А вообще, формулируйте подробнее название темы и вопрос.
 
если исключить вывод то просто ничего не будет выводится, но браузер будет ждать завершения исполнения скрипта, а нужно что бы скрипт исполнялся уже независимо от пользователя.
 
Так сразу и надо было писать. :read:

Запускаете из шелла (командной строки) следующую команду wget Для просмотра ссылки Войди или Зарегистрируйся -O /dev/null -o /dev/null -b

Это значит, что весь вывод скрипта будет уничтожаться и после скрипт перейдет в фоновый режим. Не забывайте, что время исполнения скрипта ограничено также командой в php.ini и по умолчанию составляет 30 секунд. Установить его можно в исполняемом скрипте командой set_time_limit(1200); где 1200 - максимальное время работы скрипта в секундах.

Или если запускать браузером, то использовать функции exec(Для просмотра ссылки Войди или Зарегистрируйся -O /dev/null -o /dev/null -b) или system(Для просмотра ссылки Войди или Зарегистрируйся -O /dev/null -o /dev/null -b)
 
если ты можешь запускать wget из командной строки то ты можешь запустить и вообще свой пхп интерепретатор со своим php.ini
exec("nohup /usr/bin/php -i /home/login/php.ini /home/login/www/script.php");

nohup создаёт демона. который работает сам посебе.

ключ -i - может быть не правильный проверь сам php --help
 
2ivashka
PHP:
ignore_user_abort (true)
Если сделать так, то скрипт выполниться в незавсимости от того дождался ли юзер его завершения или ушел со страницы. Это то что тебе надо было?
 
ignore_user_abort();
set_time_limit(0);
ob_start();

require_once( 'xxx.php' ); // скрипт который нужно выполнить

ob_end_clean();
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху