В настоящее время я запускаю цикл в своем PHP-скрипте, чтобы проверить, не было ли соединение пользователя прервано ( connection_aborted () не работает для вызовов ajax ):
connection_check.php
:
<?php ignore_user_abort(true); for ($i = 0; $i < 1000; $i++) { echo "<br>"; flush(); ob_flush(); if (connection_aborted()) { echo "nocon"; exit; } else { // Everything is fine } sleep(3); } ?>
Тем не менее, мне также нужно запустить остальную часть моего PHP-кода, пока этот цикл работает в «фоновом режиме», так что, когда соединение прерывается, скрипт умирает, но если это не так, скрипт должен продолжать работать. Мне нужно сделать это, потому что я вызываю этот файл PHP с помощью ajax-вызова.
Это то, что я пробовал, однако, он не работает (скрипт продолжает работать и не умирает, connection_check.php
не отвечает «nocon»):
file.php
<?php $child = fopen('http://ipaddress/core/connection_check.php', 'r'); /*** * ALL PHP CODE HERE THAT SHOULD START RUNNING RIGHT AWAY WHILE CONNECTION_CHECK.PHP RUNS IN THE BACKGROUND ***/ $response = stream_get_contents($child); if($response == "nocon") { die(); } ?>
Любая помощь? Если у кого-то есть альтернатива, это тоже будет оценено. Я уже три дня работаю над этим, и мне не повезло.