【问题标题】:Use php to trigger another php script, then ignore使用php触发另一个php脚本,然后忽略
【发布时间】:2011-07-18 17:06:32
【问题描述】:

我正在尝试解决的方法是:我有一个 php 文件,我们调用 trigger.php,它运行一些 php 代码,启动另一个 php 文件,我们将调用 backgroundProcess.php 开始处理.

虽然trigger.php 需要忽略backgroundProcess.php 发生的事情,但它只需要开始处理它,它会在backgroundProcess.php 继续运行时停止。

编辑1

我在 Windows Wampserver 2.1 上运行它所以这必须是一个 windows 命令。

edit2

感谢 jakenoble 的建议,用下面的命令解决了:

exec("C:\wamp\bin\php\phpVERSION_NUMBER\php.exe -f C:\wamp\www\path\to\backgroundProcess.php");

【问题讨论】:

    标签: php process background-process


    【解决方案1】:

    您可以使用exec() 并在调用末尾添加&,以及输出流:

    在 trigger.php 中

    exec("php backgroundProcess.php > /dev/null &");
    

    你可以在这里找到更多http://php.net/manual/en/function.exec.php

    【讨论】:

    • 这不起作用。我正在使用 WAMPSERVER 2.1,所以也许这就是问题所在?有没有办法解决这个问题?
    • 除非我做错了什么......我在同一个文件夹中都有两个 php 文件并且正在运行上面的命令。
    • 这行不通,Windows 可能不知道php 的安装位置,因此无法执行。尝试启动一个命令窗口并在那里执行脚本,然后获取该代码并在exec() 中使用它。我不使用 Windows,所以真的帮不上什么忙。您可能需要修改您的问题,因为这会改变一切。
    • 解决了! :) 使用以下命令:exec("C:\wamp\bin\php\phpVERSION_NUMBER\php.exe -f C:\wamp\www\path\to\backgroundProcess.php");
    • Unix 或 Windows 类似,这假定 php 位置在 PATH 变量中(%PATH% 用于 Windows,$PATH 用于 unix)。在 unix 中通常是这样,而在 Windows 中通常不是。将 php 目录添加到路径环境变量的替代方法是插入完整路径。这在 windows 和 unix 中是可能的,但它根本无法移植。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-02
    • 1970-01-01
    • 1970-01-01
    • 2018-08-22
    • 2023-02-08
    • 2013-12-26
    • 1970-01-01
    相关资源
    最近更新 更多