调用php passthru()函数后继续执行

时间:2012-05-29 11:17:25

标签: php passthru external-script

使用php passthru()函数时,默认为保持到外部脚本执行结束。

PHP手册说:::::“如果一个程序是用这个函数启动的,为了让它继续在后台运行,程序的输出必须重定向到一个文件或另一个输出流。这样做会导致PHP挂起,直到程序执行结束。“ - http://php.net/manual/en/function.passthru.php

我想收集特定时间的外部脚本数据,例如持续30秒,之后继续执行php脚本。任何想法如何做到这一点?

我目前的代码是:

    ob_start();
    passthru("/home/somefolder/somefolder2/program $pic1 $pic2");
    $details = ob_get_contents();
    ob_end_clean();
上面代码中的问题是 - 有时“程序”脚本会持续执行一段时间,但我不想让用户在此过程中挂起超过30秒。

我考虑过将输出重定向到文件并在30秒后读取(根据手册)。但我不知道如何将输出重定向到文件。

1 个答案:

答案 0 :(得分:1)

"/home/somefolder/somefolder2/program $pic1 $pic2 > /path/to/your/file 2>&1"

如果您希望它在后台运行,请在最后添加&

"/home/somefolder/somefolder2/program $pic1 $pic2 > /path/to/your/file 2>&1 &"