array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'function.ignore-user-abort.php', 1 => 'ignore_user_abort', ), 'up' => array ( 0 => 'ref.misc.php', 1 => 'Разные функции', ), 'prev' => array ( 0 => 'function.hrtime.php', 1 => 'hrtime', ), 'next' => array ( 0 => 'function.pack.php', 1 => 'pack', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/misc/functions/ignore-user-abort.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 4, PHP 5, PHP 7, PHP 8)
ignore_user_abort — Устанавливает, должно ли отключение клиента прерывать выполнение скрипта
Функция устанавливает, должно ли отключение клиента приводить к прерыванию скрипта.
Скрипт завершит работу при следующей попытке что-либо записать,
когда PHP-скрипт запустили как скрипт командной строки
и TTY-терминал скрипта отключился без прерывания работы скрипта,
если только для параметра enable
не установили значение true
.
enable
Функция устанавливает ini-настройку
ignore_user_abort
значением параметра enable
,
если параметр задан и не равен null
. Функция вернёт предыдущее
значение директивы без изменения, если параметр не задали.
Функция возвращает предыдущее значение директивы в виде целого числа.
Версия | Описание |
---|---|
8.0.0 |
Параметр enable теперь принимает значение null.
|
Пример #1 Пример использования функции ignore_user_abort()
<?php
// Игнорировать прерывания пользователя и разрешить скрипту
// выполняться постоянно
ignore_user_abort(true);
set_time_limit(0);
echo 'Тестирование обработки соединения в PHP';
// Запуск бессмысленного цикла,
// который, как мы надеемся, когда-нибудь заставит нас уйти
// со страницы или нажать кнопку «Стоп»
while (1) {
// Завершено ли соединение?
if (connection_status() != CONNECTION_NORMAL) {
break;
}
// Пауза на 10 секунд
sleep(10);
}
// Если скрипт достиг этой строки, значит, сработала
// управляющая конструкция break в цикле while
// Здесь можно записывать логи или выполнять
// другие необходимые операции независимо
// от браузера
?>
PHP не обнаружит, что пользователь прервал соединение, пока скрипт не сделает попытку отправить информацию клиенту. Простое выполнение инструкции echo не гарантирует отправку информации, смотрите описание функции flush().