【发布时间】:2012-09-29 16:47:55
【问题描述】:
可能重复:
Call another PHP script and return control to user before the other script completes
How to run a PHP script asynchronously from a another PHP script?
我在 PHP 中使用 exec() 时遇到了一些问题,但我不知道如何解决。 我想使用 exec() 在同一目录中“异步”执行另一个 php 脚本。 我在浏览器中打开 a.php 来调用 b.php 但它不起作用。 (本地主机是 xampp on windows 7)
a.php:
<?php
exec('php \b.php', $output, $r);
print_r($output);
print_r($r);
?>
b.php:
#!/usr/bin/php
<?php
echo time();
?>
浏览器中的输出
Array ( ) 1
我是使用与 PHP CLI 相关的东西的超级初学者...我对此一无所知... 谁能举一些简单的例子?比如a.php和b.php应该写什么。
如果您能给我一些指导或建议,非常感谢!
编辑:
我尝试了以下代码,它可以工作,但它不能“异步”运行...如何重定向输出?
在浏览器中打开 callexec.php。
callexec.php
<?php
exec('C:\xampp\php\php.exe testexec.php');
?>
testexec.php
<?php
echo "start: ",time(),"\n";
sleep(10);
echo "\n";
echo "end: ",time(),"\n";
?>
再次感谢。
【问题讨论】:
-
为什么
b.php前面有反斜杠?您是否启用了 error_reporting?php真的在 PATH 中吗? -
如果一个程序用这个函数启动,为了让它在后台继续运行,程序的输出必须重定向到一个文件或另一个输出流。请问如何将输出重定向到文件或其他输出流?
标签: php asynchronous exec command-line-interface