0

我试图在我的 php 脚本中使用 proc_open() 来调用和执行另一个 php 脚本。以下是代码:

$descriptors = array(
 0 => array("pipe","r"),
 1 => array("pipe","w"),
 2 => array("file","./error_log.txt","a")
) ;
$cwd="./";
$process=proc_open('php reversegame.php &', $descriptors,$pipes,$cwd); 
if (is_resource($process)) {
  $return_value = proc_close($process);
}

这会在 error_log.txt 中写入以下错误

PHP:语法错误,第 107 行 /etc/php5/cli/php.ini 中出现意外的“&”

我是 proc_open 的新手,并且仍在尝试掌握此功能的用法。我实际上是在运行另一个脚本的同时尝试执行这个 php 脚本!

4

4 回答 4

1

&从此行中删除

$process=proc_open('php reversegame.php ', $descriptors,$pipes,$cwd); 
于 2013-02-12T05:55:18.837 回答
0

您将需要使用pcntl_fork()查看分叉进程

我不知道这是否会让您将其他脚本置于后台,但您应该能够分叉当前线程,然后在新的分叉线程仍在运行的情况下结束当前线程。

于 2013-02-12T08:00:01.737 回答
0

您可能禁用了proc_open.

搜索disable_functions你会看到disable_functions = show_source,system,shell_exec,passthru,exec,phpinfo,proc_open

现在将其更改为disable_functions = .

并重新启动所有服务并尝试。

于 2013-02-12T06:03:15.087 回答
0

我也面临这个错误。但是这个错误不应该阻止你的脚本工作。此错误是由于在 INI 文件中使用 & 运算符造成的(例如使用 error_reporting E_ALL & ~E_NOTICE)。

于 2013-02-12T06:05:38.730 回答