Heim  >  Artikel  >  Backend-Entwicklung  >  Die Standardeingabe und -ausgabe von PHP

Die Standardeingabe und -ausgabe von PHP

不言
不言Original
2018-04-20 09:23:3119479Durchsuche

Dieser Artikel stellt die Standard-Eingabe und -Ausgabe von PHP vor, die einen gewissen Referenzwert haben. Jetzt kann ich ihn mit allen teilen, die ihn benötigen.

Eine kurze Einführung in die Standard-Eingabe und -Ausgabe von PHP





Heute möchte ich PHP in Sphere Online verwenden Richter, ich bin gekommen, um einige Fragen online zu stellen, was die Verwendung von Standardeingaben und -ausgaben erfordert, aber ich schreibe seit kurzem PHP und möchte zum Schreiben normalerweise keine Formulare verwenden, an die ich wirklich nicht gedacht habe also habe ich einen Blick auf die Dokumentation geworfen.


Das Dokument ist hier: http://php.net/manual/zh/wrappers.php.php

1 , Einführung in STDOUT und STDERR:

STDIN, STDOUT, STDERR Befehlseingabe- und -ausgabestreams, die zum Ein- und Ausgeben von Inhalten in die Konsole (Linux-Shell-Terminal, Windows-CMD-Terminal) verwendet werden Sind sie bereits geöffnet, können Sie sie direkt lesen und schreiben. Sie können nur im CLI-Modus (Befehlszeilenschnittstelle) verwendet werden. Im HTTP-Modus sind sie undefiniert.

Und ihre geöffneten Kopien php://stdin, php://stdout und php://stderr können auch keine Inhalte an den http-Browser ausgeben. Nach dem Test: Der in php://stderr geschriebene Inhalt wird in das Fehlerprotokoll der Standardeinstellung eingetragen Website. Andere Beide haben keine Wirkung.

STDIN/STDOUT/STDERR Einführung:

原始流 流打开副本 描述
STDIN php://stdin 标准输入(standard input),只读,用于从控制台输入内容;
STDOUT php://stdout 标准输出(standard output),只写,用于向控制台输出正常信息
STDERR php://stderr 错误输出(standard error),只写,用于向控制台输出错误信息

Es wird offiziell empfohlen, die Konstanten STDIN, STDOUT und STDERR anstelle ihrer manuell geöffneten Kopier-Wrapper php://stdin, php://stdout und php://stderr zu verwenden.

2. PHP STDIN-Verwendung:

„STDIN“ in der PHP-Sprache wird verwendet, um Inhalte von der Konsole zu lesen oder das fopen()-Skript über die Funktion php://stdin zu öffnen , wartet das Skript auf Benutzereingaben, bis der Benutzer zum Senden die Eingabetaste drückt.

Schreiben Sie einen stdin.php Test:

<?php
echo "请输入内容:";
$jimmy = fgets(STDIN);
echo sprintf("输入的内容为: %s\n", $jimmy);
$demo = fopen(&#39;php://stdin&#39;, &#39;r&#39;);
echo "请输入: ";
$test = fread($demo, 12); //最多读取12个字符
echo sprintf("输入为: %s\n", $test);fclose($demo);

Laufergebnisse:

请输入内容:sad
输入的内容为: sad

请输入: asdasdasdasdasdasd
输入为: asdasdasdasd(这里因为设置了最多读取12个字符,设置更多一些就可以完整显示)

3. PHP STDOUT-Verwendung:

In PHP-Sprache STDOUT wird verwendet, um Standardinformationen an die Konsole auszugeben; Inhalte, die in diese Konstante oder in die durch die Funktion fopen() geöffnete php://stdout geschrieben werden, werden direkt an die Standardausgabe; Der Inhalt der Standardausgabe kann mit „>“ oder „1>“ an einen bestimmten Ort, beispielsweise eine Datei, umgeleitet werden.

Ähnlich schreiben wir eine Datei zum Testen

<?php
fwrite(STDOUT, "通过STDOUT写入;\n");
$demo = fopen("php://stdout", "w");
fwrite($demo, "通过php://stdout写入;");
fclose($demo);
Führen Sie sie aus:

☁  test  php demo.php > a.txt
☁  test  cat a.txt
通过STDOUT写入;
通过php://stdout写入;%                                                        ☁  test  php demo.php
通过STDOUT写入;
通过php://stdout写入;%                                                        ☁  test
4. Verwendung von PHP STDERR:

PHP-Sprache " „STDERR“ wird verwendet, um Fehlerinformationen an die Konsole auszugeben; Inhalte, die in eine Konstante oder in „php://stderr“ geschrieben werden, das durch die Funktion

fopen() geöffnet wurde, werden direkt an den Error der Konsole ausgegeben Ausgabe; Der Inhalt der Fehlerausgabe kann mit „2>“ an einen bestimmten Ort umgeleitet werden Den Fehler ausgeben. Wird an die Standardausgabe weitergeleitet und mit der Standardausgabe zusammengeführt. Lass es uns testen

Normale Ausgabe und Fehlerausgabe werden an verschiedene Dateien weitergeleitet:

<?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);

Normale Ausgabe und Fehlerausgabe werden zusammengeführt und an eine einheitliche weitergeleitet Datei:

☁  test  php demo.php 1>demo.ok 2>demo.err
☁  test   cat demo.okSTDOUT写入的正常输出;
php://stdout写入的正常输出;☁  test   cat demo.errSTDERR写入的错误输出;
php://stderr写入的错误输出;

Okay, jetzt können Sie zu Sphere Online Judge gehen, um zuerst das Demothema zu testen

☁  test  php demo.php 1>AllInOne 2>&1☁  test  cat AllInOneSTDERR写入的错误输出;
STDOUT写入的正常输出;
php://stdout写入的正常输出;
php://stderr写入的错误输出;

Schreiben Sie einen Code

Senden

<?php
    // your code here$x=0;while($x!=42){
   $x = fgets(STDIN);
   if($x!=42){
   echo sprintf("%d\n",$x);}}?>

Hahahaha, völlig ok, nicht mehr auf Java und C beschränkt, ich kann PHP verwenden, um einige Fragen zu beantworten, jeder kann es auch ausprobieren

Verwandte Empfehlungen:

Weiterführende Hinweise zu PHPs Smarty

PHPs Namespace und automatisches Laden

PHP-Download-Funktion

Das obige ist der detaillierte Inhalt vonDie Standardeingabe und -ausgabe von PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn