Heute möchte ich PHP verwenden, um einige Online-Fragen in Sphere Online Judge zu beantworten, aber ich schreibe seit kurzem PHP und nicht Ich möchte C nicht verwenden. Normalerweise reiche ich Formulare ein, wenn ich Projekte schreibe, und das hatte ich wirklich nicht in Betracht gezogen, also habe ich einen Blick auf die Dokumentation geworfen.
Das Dokument finden Sie hier: http://php.net/manual/zh/wrappers.php.php
1 Einführung in PHP STDIN, STDOUT, STDERR:
STDIN
, STDOUT, STDERR
Befehlseingabe- und -ausgabestreams werden zur Eingabe und Ausgabe von Inhalten in die Konsole verwendet (Linux-Shell-Terminal, Windows-CMD-Terminal). Sie sind standardmäßig bereits geöffnet und können sein Direkt verarbeitete Lese- und Schreibvorgänge können nur im CLI-Modus (Befehlszeilenschnittstelle, Befehlszeilenschnittstelle) verwendet werden und sind im HTTP-Modus undefiniert. STDIN
、STDOUT
、STDERR
命令输入输出流,用于向控制台(linux shell终端、windows cmd终端)输入、输出内容,它们默认是已经打开的,可以直接对他们进行读写操作,它们只能在CLI(command-line interface,命令行界面)模式中使用,在Http模式时,它们是未定义的。
而他们的打开副本php://stdin
、php://stdout
、php://stderr
也无法输出内容到http浏览器,经测试:写入php://stderr
的内容将会输入到默认站点的错误日志中,其它两种无任何效果。
STDIN/STDOUT/STDERR简介:
原始流 | 流打开副本 | 描述 |
---|---|---|
STDIN | php://stdin | 标准输入(standard input),只读,用于从控制台输入内容; |
STDOUT | php://stdout | 标准输出(standard output),只写,用于向控制台输出正常信息; |
STDERR | php://stderr | 错误输出(standard error),只写,用于向控制台输出错误信息; |
官方推荐使用常量 STDIN、 STDOUT 和 STDERR 来代替它们手动打开的副本封装器php://stdin
、 php://stdout
和 php://stderr
。
【推荐学习:PHP视频教程】
二、PHP STDIN用法:
PHP语言中"STDIN"用于从控制台读取内容,遇到此常量或者通过fopen()
函数打开php://stdin
脚本将会等待用户输入内容,直到用户按下回车键提交。
写个stdin.php
测试一下:
<?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语言中STDOUT
用于向控制台输出标准信息;向此常量、或者向fopen()函数打开的php://stdout
Und ihre geöffneten Kopien php://stdin
, php://stdout
, php://stderr
können keine Inhalte an den http-Browser ausgeben , nach dem Test: Der in php://stderr
geschriebene Inhalt wird in das Fehlerprotokoll der Standardseite eingetragen, die anderen beiden haben keine Auswirkung. STDIN/STDOUT/STDERR Einführung:
Original-Stream | Offene Stream-Kopie | Beschreibung |
---|---|---|
STDIN | php://stdin | Standardeingabe (Standardeingabe), schreibgeschützt, verwendet zum Geben Sie Inhalte über die Konsole ein; |
STDOUT | php://stdout | Standardausgabe (Standardausgabe), nur Schreiben , Wird verwendet, um normale Informationen an die Konsole auszugeben |
STDERR | php://stderr | Fehlerausgabe (Standard). error ), schreibgeschützt, wird zur Ausgabe von Fehlermeldungen an die Konsole verwendet |
php://stdin
, php://stdout
und php://stderr
. 【Empfohlenes Lernen: PHP-Video-Tutorial】2. PHP STDIN-Verwendung:
„STDIN“ in der PHP-Sprache wird verwendet, um Inhalte von der Konsole zu lesen oder php:/ über <code>fopen()
zu öffnen Funktion /stdinDas Skript wartet auf Benutzereingaben, bis der Benutzer zum Senden die Eingabetaste drückt. Schreiben Sie stdin.php
, um es zu testen:
<?php fwrite(STDOUT, "通过STDOUT写入;\n"); $demo = fopen("php://stdout", "w"); fwrite($demo, "通过php://stdout写入;"); fclose($demo);Führen Sie das Ergebnis aus:
☁ test php demo.php > a.txt ☁ test cat a.txt 通过STDOUT写入; 通过php://stdout写入;% ☁ test php demo.php 通过STDOUT写入; 通过php://stdout写入;% ☁ test3. PHP STDOUT-Verwendung: In der PHP-Sprache wird
STDOUT
zum Senden verwendet Nachrichten an die Konsole Standardinformationen ausgeben; der Inhalt, der in diese Konstante oder in php://stdout
geschrieben wird, das von der Funktion fopen()
geöffnet wurde, wird direkt an dieStandardausgabe
der Konsole ausgegeben ; der Inhalt der Standardausgabe Sie können „>
“ oder „1>
“ verwenden, um an einen bestimmten Ort, beispielsweise eine Datei, umzuleiten. In ähnlicher Weise schreiben wir eine Datei, um sie zu testen.<?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);()Der in „php://stderr“ geschriebene, von der Funktion geöffnete Inhalt wird direkt an die
Fehlerausgabe
der Konsole ausgegeben; der Fehlerausgabeinhalt kann mit „