请求后运行PHP

时间:2009-01-11 08:08:01

标签: php

我希望能够在加载页面时启动第二个脚本(PHP或Python)并在用户取消/导航后继续运行这可能吗?

4 个答案:

答案 0 :(得分:4)

您可以发送连接:关闭标题,它可以完成用户的页面,但可以让您在“页面加载后”执行操作。

有一种忽略用户中止的简单方法(参见php manual):

ignore_user_abort(true);

答案 1 :(得分:2)

使用process forking with pcntl。 但它只适用于Unix操作系统。

您也可以这样做:

exec("/usr/bin/php ./child_script.php > /dev/null 2>&1 &");

您可以阅读有关上述示例here的更多信息。

答案 2 :(得分:2)

用于保存当前脚本:

  • ignore_user_abort(真);
  • 参数或者set_time_limit(0);

用于运行另一个脚本:

  • 请参阅$ sock = fsockopen('http://localhost/path_to_script',80,$ errorStr,3600)+ stream_set_timeout($ sock,3600);
  • 见exec('php path_to_script'); - 这将导致您的脚本从CLI运行,因此您必须在该服务器上安装php-cli。

答案 3 :(得分:0)

如果你不能使用其他方法,另一种方法是在输出的底部包含一个img标记,它请求一个php页面,它可以完成你想要做的任何事情。

它仍然会显示加载动画,所以我认为Karsten的建议可能更好(我会尝试下次我需要做这类事情)。