我是一个PHP新手......我通常用bash编写脚本,我可以轻松地做这样的事情:
#!/bin/bash
# myscript.sh
function testFunction() {
echo "bubu" > /dev/tty
echo "gaga"
}
a=$(testFunction)
echo $a > t
如果我在shell中运行它,我会得到这个:
$ ./myscript.sh
bubu
$ cat t
gaga
现在,如果我有一个PHP文件而不是函数,我怎么能得到相同的输出?
// my script.php
echo "bubu";
echo "gaga";
Bash脚本:
#!/bin/bash
# myscript.sh
a=$(php myscript.php)
echo $a > t
如果我在shell中运行它,我会得到这个:
$ ./myscript.sh
$ cat t
bubu
gaga
如何告诉php脚本将"bubu"
发送到/dev/tty
?
我尝试和ob_start
及其朋友一起玩,但没有得到任何结果。
答案 0 :(得分:0)
您可以在PHP中使用stdout / stderr来分割输出,请参阅stackoverflow问题PHP CLI doesn't use stderr to output errors。但是,这需要将echo
中的所有“bubu”myscript.php
语句调整为:
fwrite(STDERR, "bubu");
然后,你会将 stderr 重定向到Bash包装器中的文件bubu
以获取所有“bubu”行,而所有“gaga”行将出现在您的终端上:
php myscript.php 2> bubu
答案 1 :(得分:-1)
$ php script.php > /dev/tty
这就是诀窍:))
编辑/
我明白了,你只想要" bubu"
所以,您应该执行以下操作:
file_put_contents('/dev/tty', 'bubu');