PHP-скрипт продолжается после закрытия / остановки страницы

Кажется, скрипты php продолжаются даже после закрытия или остановки страницы.

например, если мой скрипт запущен /localhost/test.php

после закрытия страницы иногда она продолжает работать. Я уверен, что перезапуск apache очищает его, но есть ли лучший способ завершить php-скрипт после его запуска.

Вы можете использовать ignore_user_abort, но я думаю, что это применимо только в том случае, если вы используете PHP в качестве сценария командной строки.

При запуске скриптов из браузера, по моему опыту, я понял, что скрипты работают даже после закрытия браузера. Я не пошел дальше, чтобы проверить, как долго они запускались.

Скрипты, которые делают огромную обработку, которая может работать много минут, я использовал для управления, как показано ниже:

  • Учитывается переменная флага, которая хранится в таблице базы данных.
  • Предоставляется способ установить флаг On Или Off (Или 1 или 0 ).
  • Флаг проверяется в скрипте, и скрипт останавливается, если флаг обнаружен как Off (или 0 ).

Один из способов рассмотрения флага находится в цикле, как показано ниже:

 while(true) { /* Your code here which probably does lot of processing */ if($flag === false) break; // Or exit if you prefer } в while(true) { /* Your code here which probably does lot of processing */ if($flag === false) break; // Or exit if you prefer } 

Если у вас есть код, который нужно запустить после цикла, вы должны использовать break .
Если вы хотите резко остановить скрипт, вы можете использовать exit вместо этого на своем месте.

проверьте это: http://php.net/manual/en/function.ignore-user-abort.php

Устанавливает, должен ли клиент отключиться, чтобы сценарий был прерван.