この記事は、一定の参考値を持つ PHP の標準入出力を紹介します。必要な友達は参考にしてください。
7 か月前
ドキュメントはここにあります: http://php.net/manual/zh/wrappers.php.php
1. PHP STDIN、STDOUT、STDERR の概要:
コマンド入力および出力ストリーム、コンソール (Linux シェルターミナル、Windows cmd ターミナル) の入力および出力コンテンツに使用されます。これらはデフォルトで開いており、直接読み書きできます。CLI (コマンドラインインターフェイス、コマンドラインインターフェイス) モードでのみ使用できます。これらは HTTP モードでは未定義です。
開いたコピーの内容php://stdin
、php://stdout
、php://stderr
也无法输出内容到http浏览器,经测试:写入php://stderr
はデフォルト サイトのエラー ログに入力され、他の 2 つは影響しません。
STDIN/STDOUT/STDERR 概要:
オリジナルストリーム | ストリームオープンコピー | 説明 |
---|---|---|
STDIN | php://stdin | 標準入力、読み取り専用入力コンソールからのコンテンツ; |
STDOUT | php://stdout | 標準出力(標準出力)、通常の情報をコンソールに出力するために使用されます |
STDERR | php: //stderr | エラー出力 (標準エラー)、書き込み専用、エラー情報をコンソールに出力するために使用されます。 手動で開いたコピー ラッパー 二、PHP STDIN用法:PHP语言中"STDIN"用于从控制台读取内容,遇到此常量或者通过 写个 <?php echo "请输入内容:"; $jimmy = fgets(STDIN); echo sprintf("输入的内容为: %s\n", $jimmy); $demo = fopen('php://stdin', 'r'); echo "请输入: "; $test = fread($demo, 12); //最多读取12个字符 echo sprintf("输入为: %s\n", $test);fclose($demo); 运行结果: 请输入内容:sad 输入的内容为: sad 请输入: asdasdasdasdasdasd 输入为: asdasdasdasd(这里因为设置了最多读取12个字符,设置更多一些就可以完整显示) 三、PHP STDOUT用法: PHP语言中 <?php fwrite(STDOUT, "通过STDOUT写入;\n"); $demo = fopen("php://stdout", "w"); fwrite($demo, "通过php://stdout写入;"); fclose($demo);Running results: ☁ test php demo.php > a.txt ☁ test cat a.txt 通过STDOUT写入; 通过php://stdout写入;% ☁ test php demo.php 通过STDOUT写入; 通过php://stdout写入;% ☁ testThree. PHP STDOUT の使用法: PHP 言語で STDOUT は、標準情報をコンソールに出力するために使用されます。 fopen() 関数に対して開かれます。 :monaco、Consolas、'Liberation Mono'、Menlo、Courier、monospace;font-size:.9em;padding:1px 2px;color:rgb(133,128,128);background:rgb(249,250,250);margin:5px;border:1pxソリッドrgb(228,228,228);">php://stdout 書き込まれた内容は、コンソールの標準出力に直接出力されます。標準出力の内容は、「>」または「」になります。 1> 「ファイルなどの指定された場所にリダイレクトします。 同様に、ファイルを作成してテストしましょう <?php fwrite(STDERR, "STDERR写入的错误输出;\n"); fwrite(STDOUT, "STDOUT写入的正常输出;\n"); $stdout = fopen("php://stdout", "w"); fwrite($stdout, "php://stdout写入的正常输出;\n"); fclose($stdout);$stderr = fopen("php://stderr", "w"); fwrite($stderr, "php://stderr写入的错误输出;\n"); fclose($stderr);それを実行します: ☁ test php demo.php 1>demo.ok 2>demo.err ☁ test cat demo.okSTDOUT写入的正常输出; php://stdout写入的正常输出;☁ test cat demo.errSTDERR写入的错误输出; php://stderr写入的错误输出;4. PHP STDERR の使用法: PHP 言語の「STDERR」は、エラー情報を定数または fopen に出力するために使用されます。 () 関数で開いた「php://stderr」に書かれた内容は、コンソールのエラー出力 に直接出力されます; エラー出力内容は、「」を使用してファイルなどの指定した場所にリダイレクトできます2>2>&1 " を使用して、エラー出力を標準出力に送り、それを標準出力とマージすることもできます。 テストしてみましょう ☁ test php demo.php 1>AllInOne 2>&1☁ test cat AllInOneSTDERR写入的错误输出; STDOUT写入的正常输出; php://stdout写入的正常输出; php://stderr写入的错误输出; 通常の出力とエラー出力はそれぞれ異なるファイルに送信されます:<?php // your code here$x=0;while($x!=42){ $x = fgets(STDIN); if($x!=42){ echo sprintf("%d\n",$x);}}?> 通常の出力とエラー出力はマージされ、統合されたファイルに送信されます:関連する推奨事項: |
以上がPHPの標準入出力の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。