是否可以使用 unix 管道将数据传输到命令行 php 脚本中?我试过了
$> data | php script.php
但预期的data
没有出现在$argv
。有没有办法做到这一点?
PHP 可以从标准输入读取,并且还为其提供了一个很好的快捷方式:STDIN https://www.php.net/manual/en/features.commandline.io-streams.php.
有了它,您可以使用诸如stream_get_contents https://www.php.net/manual/en/function.stream-get-contents.php和其他人做这样的事情:
$data = stream_get_contents(STDIN);
这只会将所有管道数据转储到$data
.
如果您想在读取所有数据之前开始处理,或者输入大小太大而无法放入变量中,您可以使用:
while(!feof(STDIN)){
$line = fgets(STDIN);
}
STDIN
只是一个捷径$fh = fopen("php://stdin", "r");
。
相同的方法可以应用于读写文件和 TCP 流。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)