PHP は通常、標準入力がないWeb 開発に使用されますが、PHP は、ファンキーな Web ベースの規則に従えば、汎用スクリプト言語として使用できると主張しています。PHP がandを使用してstdout
(または任意の名前で) に出力することはわかっていますが、これは十分に単純ですが、PHP スクリプトがどのように入力を取得するのか(具体的には を使用しますが、任意の入力関数が適しています)、またはこれも可能ですか?print
echo
stdin
fgetc()
80153 次
10 に答える
88
stdin
たとえば、ファイルハンドルを作成してphp://stdin
からfgets()
、たとえば行に対して(または、すでに述べたようにfgetc()
、単一の文字に対して)読み取ることができます。
<?php
$f = fopen( 'php://stdin', 'r' );
while( $line = fgets( $f ) ) {
echo $line;
}
fclose( $f );
?>
于 2009-02-16T22:08:39.507 に答える
47
STDINからの読み取りが推奨される方法です
<?php
while (FALSE !== ($line = fgets(STDIN))) {
echo $line;
}
?>
于 2010-12-17T23:22:17.477 に答える
24
ファイルハンドルをいじる必要がないようにするには、とを使用file_get_contents()
しphp://stdin
ます。
$ echo 'Hello, World!' | php -r 'echo file_get_contents("php://stdin");'
Hello, World!
(本当に大量のデータを読み取っている場合はstdin
、ファイルハンドルアプローチを使用することをお勧めしますが、これは何メガバイトにも適しているはずです。)
于 2012-02-27T12:09:19.813 に答える
15
簡単な方法は、
$var = trim(fgets(STDIN));
于 2012-03-26T08:33:55.397 に答える
8
fopen()
で使用できますphp://stdin
:
$f = fopen('php://stdin', 'r');
于 2009-02-16T22:08:07.713 に答える
6
これも機能します:
$data = stream_get_contents(STDIN);
于 2015-08-14T12:55:22.823 に答える
5
IIRC、次のものも使用できます。
$in = fopen(STDIN, "r");
$out = fopen(STDOUT, "w");
技術的には同じですが、構文が少しすっきりしています。
于 2009-02-16T23:09:29.983 に答える