【发布时间】:2014-07-23 09:21:19
【问题描述】:
我目前正在我的 PHP 脚本中运行一个循环来检查用户连接是否已中止 (connection_aborted() does not work on ajax calls):
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 代码,这样当连接中止时,脚本就会终止,但如果不是,脚本应该继续运行.我需要这样做,因为我正在使用 ajax 调用来调用这个 PHP 文件。
这是我尝试过的,但是,它不起作用(脚本继续运行并且不会死,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();
}
?>
有什么帮助吗?如果有人有替代方案,那也将不胜感激。我已经为此工作了一天多,但还没有运气。
【问题讨论】:
标签: php ajax multithreading fopen