PHP:语法错误,意外'&';在/etc/php5/cli/php.ini的第107行


PHP: syntax error, unexpected '&' in /etc/php5/cli/php.ini on line 107

我正试图在我的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:语法错误,意外的'&'在/etc/php5/cli/php.ini中的第107行

我是proc_open的新手,仍在努力掌握这个函数的用法。实际上,我正在尝试在运行另一个脚本的同时执行这个php脚本!

从此行中删除&

$process=proc_open('php reversegame.php ', $descriptors,$pipes,$cwd); 

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

您可能已禁用proc_open

搜索disable_functions,您将看到disable_functions = show_source,system,shell_exec,passthru,exec,phpinfo,proc_open

现在将其更改为disable_functions =

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

您需要研究使用pcntl_fork()对进程进行分叉

我不知道这是否会让你把另一个脚本放在后台,但你应该能够分叉当前线程,然后在新的分叉线程仍在运行的情况下结束当前线程。