Dieses Mal werde ich Ihnen eine detaillierte Erklärung der Unterschiede zwischen php://Ausgabe und php://stdout sowie Vorsichtsmaßnahmen für die Verwendung von php://Ausgabe und php://stdoutWas sind das? Hier sind echte Fälle. Die Antwort finden Sie in der offiziellen PHP-Dokumentation. Die Erklärungen zu den Eingabeströmen php://stdin und php://input sind wie folgt (die Erklärung des Ausgabestroms ist zu kurz):
php://stdin php://stdin, php://stdout and php://stderr allow direct access to the corresponding input or output stream of the PHP process. The stream references a duplicate file descriptor, so if you open php://stdin and later close it, you close only your copy of the descriptor-the actual stream referenced by STDIN is unaffected. Note that PHP exhibited buggy behavior in this regard until PHP 5.2.1. It is recommended that you simply use the constants STDIN, STDOUT and STDERR instead of manually opening streams using these wrappers. php://stdin is read-only, whereas php://stdout and php://stderr are write-only. php://input php://input is a read-only stream that allows you to read raw data from the request body. In the case of POST requests, it is preferable to use php://input instead of $HTTP_RAW_POST_DATA as it does not depend on special php.ini directives. Moreover, for those cases where $HTTP_RAW_POST_DATA is not populated by default, it is a potentially less memory intensive alternative to activating always_populate_raw_post_data. php://input is not available with enctype=”multipart/form-data”.
Das Dokument erklärt den Unterschied zwischen den beiden nicht direkt. Ein sorgfältiger Vergleich kann zu folgenden Informationen führen: 1. Bei beiden handelt es sich um schreibgeschützte Streams. 2. php://stdin ist die Standardeingabe des PHP-Prozesses, php://input Rohdaten, die zum Lesen des Anforderungstexts verwendet werden. Wie können wir anhand dieser Informationen die wesentlichen Unterschiede zwischen den beiden richtig verstehen?
Folgen Sie den Eingabeaufforderungen des php://stdin-Prozesses, verknüpfen Sie den Ausführungsprozess des PHP-Prozesses und kombinieren Sie ihn mit den Unterschieden in SAPI. Sie können die Hauptunterschiede zwischen den beiden ermitteln: php:/ /stdin ist der Eingabestrom des PHP-Prozesses. Während des Ausführungslebenszyklus
können Daten einfließen (z. B. interaktive Eingabe unter CLI); Im Allgemeinen können Daten nur einmal gelesen werden (siehe SAPI für Details). Auf die gleiche Weise können wir den Unterschied zwischen php://stdout und php://output ermitteln: php://stdout ist der Standardausgabestrom des PHP-Prozesses und php://output ist der zurückgegebene Ergebnisdatenstrom .Der folgende Code wird verwendet, um die Schlussfolgerung zu überprüfen:
// file: test.php file_put_contents("php://output", "message sent by output" . PHP_EOL); file_put_contents("php://stdout", "message sent by stdout" . PHP_EOL); print("message sent by print" . PHP_EOL); echo "SAPI:" , PHP_SAPI , PHP_EOL;
message sent by output message sent by stdout message sent by print SAPI:cli
message sent by output message sent by print SAPI:fpm-fcgi
PHP berechnet die ganzzahlige Menge extra großer Zahlen
Detaillierte Erläuterung des Falles des Erhaltens von Nachrichten Daten mit PHP+Ajax
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Unterschieds zwischen php://output und php://stdout. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!