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. 管道命令到Windows上
- 3. Python管道和命令行参数
- 4. 管道unix命令
- 5. 管道数据到外壳命令期待一个文件名
- 6. 管道输入到unix进程从命令行知道PID
- 7. 管道输出命令shell命令
- 8. Laravel 5命令 - 调度命令管道
- 9. Redis复合命令或命令管道
- 10. shell如何执行管道命令?
- 11. 使用findstr执行管道命令
- 12. 蚂蚁运行命令与管道
- 13. 在android中执行管道命令
- 14. 詹金斯管道:与管道多行shell命令
- 15. 管道命令到控制台
- 16. 管道到不接受管道的命令
- 17. Dmesg命令管道它grep
- 18. 选项| (管道)命令
- 19. 使用PHP在后台运行一个管道外壳命令
- 20. GDB - 管道输出的内部命令到shell命令
- 21. 从内存中运行python和管道参数的命令行
- 22. 管道输入命令行到bash解释器
- 23. 如何将管道添加到groovy exec命令行?
- 24. PHP输出到命令行
- 25. CURL命令行到PHP?
- 26. cURL命令行到PHP
- 27. 管理命令行
- 28. 使用dplyr管道命令进行数值计算
- 29. 是否可以给管道char'|'作为命令行参数?
- 30. 从管道命令追加到数组变量
看得那么清楚:检测一个PHP脚本正在运行交互式地或不是](http://stackoverflow.com/q/11327367/367456) – hakre 2015-11-06 11:05:59