来自bash pipe和heredoc的php stdin

Bil*_*oon 10 php bash

我可以从管道和heredoc接收输入,并在命令行中从php中使用它们.

我想做这样的事情:

bash$ ls -l | php <<'code'
<?php
   echo $piped;
?>
code
Run Code Online (Sandbox Code Playgroud)

哪个应该返回结果 ls -l

另外,我可以使用php -Rheredoc输入php脚本吗?

Shi*_*dim 13

管道

ls -l | php -r 'print_r(file("php://stdin"));'


定界符

$ php <<CODE
<?php
echo "Hello World\n";
?>
CODE
Hello World
Run Code Online (Sandbox Code Playgroud)

综合

$ ls -l | php <<'CODE'
<?php
$f = file("php://stdin");
foreach($f as $k=>$v){
echo "[$k]=>$v";
}
?>
Program Finished
CODE

[0]=><?php
[1]=>$f = file("php://stdin");
[2]=>foreach($f as $k=>$v){
[3]=>echo "[$k]=>$v";
[4]=>}
[5]=>?>
[6]=>Program Finished
Program Finished
Run Code Online (Sandbox Code Playgroud)

注意:当您使用Here Documents for php命令时,新添加的php代码将覆盖之前的代码stdin