14
A
回答
17
据我了解,会显示程序的参数,换句话说:
php script.php arg1 arg2 arg3
但是,如果你管数据到PHP,你将不得不从标准输入读取它。我从来没有试过这个,但我认为它是这样的:
$fp = readfile("php://stdin");
// read $fp as if it were a file
+2
如果你用“file”替换“readfile”,你会得到输入为一行数组,它不会自动回显。 – 2015-06-23 14:01:26
4
你可以管数据,是的。但它不会出现在。它会去标准输入。你可以阅读这几个方面,包括fopen('php://stdin','r')
有很好的例子in the manual
14
0
如果你想让它在显示,试试这个:
echo "Whatever you want" | xargs php script.php
这将变相任何进入标准输入命令行参数。
4
这为我工作:
stream_get_contents(fopen("php://stdin", "r"));
25
PHP可以从标准输入读取,并且还为它提供了一个快捷方式:STDIN。
有了它,你可以做这样的事情:
$data = stream_get_contents(STDIN);
这将只转储所有的管道数据为$的数据。
如果你要开始处理所有数据被读取之前,或输入尺寸太大,无法放入一个变量,你可以使用:
while(!feof(STDIN)){
$line = fgets(STDIN);
}
STDIN只是$快捷FH = FOPEN (“php:// stdin”,“r”); 相同的方法可以应用于读写文件和tcp流。
3
在这篇文章中,我们看到一个脚本的行为像一个shell脚本,为每行输入执行另一个命令...例如:
ls -ln | awk '{print $9}'
如果你正在寻找做一个PHP脚本,以类似的方式表现,这为我工作:
#!/usr/bin/php
<?php
$input = stream_get_contents(fopen("php://stdin", "r"));
$lines = explode("\n", $input);
foreach($lines as $line) {
$command = "php next_script.php '" . $line . "'";
$output = shell_exec($command);
echo $output;
}
相关问题
- 1. 管道命令行
- 2. Linux命令行与Linux命令管道
- 3. 从命令行管道将数据馈送到八度图中
- 4. 管道命令到Windows上
- 5. Linux命令 - 管道命令
- 6. 管道和命令行参数
- 7. Python管道和命令行参数
- 8. 带命令行命名管道提示
- 9. 管道unix命令
- 10. 管道rm命令
- 11. 从1命令管道输出到其他命令在adb外壳命令行
- 12. 管道数据到外壳命令期待一个文件名
- 13. 管道输入到unix进程从命令行知道PID
- 14. Laravel 5命令 - 调度命令管道
- 15. 嵌套命令和管道命令
- 16. 管道输出命令shell命令
- 17. Redis复合命令或命令管道
- 18. 蚂蚁运行命令与管道
- 19. Perl,用管道执行bash命令
- 20. 管道命令行hadoop流作业
- 21. 使用findstr执行管道命令
- 22. Python执行命令与管道控制
- 23. 在android中执行管道命令
- 24. 在Windows中使用管道命令行
- 25. shell如何执行管道命令?
- 26. 管道执行命令只有一次
- 27. 在android中执行管道命令?
- 28. 如何使用管道运行命令?
- 29. 詹金斯管道:与管道多行shell命令
- 30. 如何管道到git标签命令?
看得那么清楚:检测一个PHP脚本正在运行交互式地或不是](http://stackoverflow.com/q/11327367/367456) – hakre 2015-11-06 11:05:59