在windows环境中的PHP后台进程

时间:2013-02-11 10:22:13

标签: php

我正在使用Windows-7操作系统和wamp服务器。 我有2个php文件trigger.php,background.php。 我想在后台运行background.php。我必须从trigger.php。

调用此文件

我尝试了下面的方法。

我在trigger.php中添加了这段代码

    $WshShell = new COM("WScript.Shell");
   $oExec = $WshShell->Run("C:\wamp\bin\php\php5.3.5\php-win.exe -f C:/wamp/www/background.php", 0, false);

但是我的background.php没有被调用。

我怎么能这样做?

任何建议都表示赞赏。

2 个答案:

答案 0 :(得分:13)

function execInBackground($cmd) { 
    if (substr(php_uname(), 0, 7) == "Windows"){ 
        pclose(popen("start /B ". $cmd, "r"));  
    } 
    else { 
        exec($cmd . " > /dev/null &");   
    } 
}

在这种情况下,您的$cmd将为"php C:/wamp/www/path/to/background.php"

答案 1 :(得分:0)

我更改了以下功能,

$cmd = 'C:\wamp\bin\php\php5.3.5\php.exe C:\wamp\www\email3.php';

function execInBackground($cmd) { 
    if (substr(php_uname(), 0, 7) == "Windows"){ 
        pclose(popen("start /B " . $cmd, "r"));  
    } 
    else { 
        exec($cmd . " > /dev/null &");   
    } 
}

并且,它适用于我。 :)