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