如何在后台运行php脚本,而不使浏览器显示正在加载的动画?
我有两个php脚本 sleep.php如何在后台运行php脚本,而不使浏览器显示正在加载的动画?,php,linux,bash,Php,Linux,Bash,我有两个php脚本 sleep.php <?php sleep(5); ?> <?php shell_exec("php sleep.php &"); ?> sleep\u来自_shell.php <?php sleep(5); ?> <?php shell_exec("php sleep.php &"); ?> 当我从_shell.php访问mysite.com/sleep_时浏览器选项卡标题被标记为“连接…”,并
<?php sleep(5); ?>
<?php shell_exec("php sleep.php &"); ?>
sleep\u来自_shell.php
<?php sleep(5); ?>
<?php shell_exec("php sleep.php &"); ?>
当我从_shell.php访问mysite.com/sleep_时
浏览器选项卡标题被标记为“连接…”,并显示一个5秒钟的加载动画。换句话说,如果代码是
(无符号&),那么来自_shell.php的sleep>的行为方式与代码的行为方式相同
我从命令行执行了php sleep.php&
,终端没有挂起,所以我想知道是否可以从cgi执行同样的操作
编辑
我的目标是从_shell.php
访问mysite.com/sleep\u,并立即加载选项卡,而不让选项卡标题显示“Connecting…”,因此sleep.php
在后台运行。这可能吗?尝试添加ini\u集('max\u execution\u time',0)代码>因为如果未设置,webbrowser会在一段时间后自动剪切加载
编辑:
现在,您已经提供了您的目标,使用ajax是可能的。我让你做一些关于ajax的研究。编写ajax时,请考虑设置长超时:)尝试添加ini\u集(“最大执行时间”,0)代码>因为如果未设置,webbrowser会在一段时间后自动剪切加载
编辑:
现在,您已经提供了您的目标,使用ajax是可能的。我让你做一些关于ajax的研究。编写ajax时,请考虑设置一个长超时:)命令中的“&”意味着将进程启动到后台,因此命令执行不会等到进程完成后才返回。这就是它没有挂起的原因。命令中的“&”意味着将进程置于后台,因此命令的执行不会等到进程完成后再返回。这就是它没有挂起的原因。尝试在第一行添加以下内容:
ignore_user_abort(true);
set_time_limit(0);
尝试在第一行添加以下内容:
ignore_user_abort(true);
set_time_limit(0);
来自_shell.php的sleep\u中的代码必须是
<?php shell_exec("php sleep.php > log.txt &"); ?>
而不是
<?php shell_exec("php sleep.php &"); ?>
即使没有标准输出,您也需要包含一个文件以将标准输出传输到其中,否则浏览器窗口将挂起5秒钟。必须删除shell.php中的sleep\u中的代码
<?php shell_exec("php sleep.php > log.txt &"); ?>
而不是
<?php shell_exec("php sleep.php &"); ?>
即使没有标准输出,您也需要包含一个文件以将标准输出传送到其中,否则浏览器窗口将挂起5秒钟。我真的不知道您在问什么,但您可能想签出我刚刚编辑了我的原始帖子,请参阅以获取澄清我无法真正说出您的要求,但您可能想查看我刚刚编辑了我的原始帖子,请参阅以获取澄清非常确定这将在不运行外部进程的情况下终止脚本。非常确定这将在不运行外部进程的情况下终止脚本。我知道。。。我想你不明白我的问题我知道。。。我想你不明白我的问题。