我希望php在后台执行一个unix应用程序,并且可以访问它的stdin / stdout,类似于python中子进程的方式......这可能吗?如果是这样的话?
答案 0 :(得分:0)
您绝对可以执行外部程序 http://php.net/manual/en/function.exec.php
您可以使用PHP的CLI接口的一个部分来实现三个“流”,您可以使用这些“流”或多或少地与从fopen()返回的文件资源进行交互。流用字符串标识:
php:// stdin(阅读) php:// stdout(写) php:// stderr(写)
使用PHP 4.3.0+ CLI二进制文件,这三个流自动可用,分别用常量STDIN,STDOUT和STDERR标识。以下是我如何使用STDOUT修复上述脚本以使其在Windows上正常运行:
<?php
$i = 0;
while ( $i < 10 ) {
// Write some output
fwrite(STDOUT, $i."\n");
sleep(1);
$i++;
}
?>
http://articles.sitepoint.com/article/php-command-line-1
<强> PK 强>
答案 1 :(得分:0)
尝试这样的事情:exec('unix_app | python_script > /dev/null &');
编辑:
再次阅读你的问题并意识到你不想管道进入Python脚本。如果您在后台启动该过程,您的PHP脚本将继续执行其余部分,它将无法接收STDIN / OUT。您可以将它管道传输到不同的PHP脚本中,就像上面的示例一样,然后您将再次访问STDIN。