不是一个骗子,在这种情况下,我试图通过命令行运行php,但它无法按预期运行(php使用php:// input,但我不想修改它们)
我正在尝试以下操作:
echo 'hello' | php -r 'print("input content:".file_get_contents("php://input"));'
我期望类似
content:hello
要打印出来,但只能得到
内容:
答案 0 :(得分:5)
请改用stdin
:
echo "hello" | php -r 'print_r("input content:".file_get_contents("php://stdin"));'
有关CLI流的更多信息:http://php.net/manual/en/features.commandline.io-streams.php
答案 1 :(得分:0)
您可以使用参数。
#!/usr/bin/php
<?php
// loop through each element in the $argv array
foreach($argv as $value){
echo "$value\n";
}
答案 2 :(得分:0)
实际上php:// input仅在我使用php-cgi而不是php时才有效 因此,传递请求正文代码就像:
回显'{“ a”:1}'| php-cgi -r'print(“ input 内容:“ .file_get_contents(” php:// input“));'