Analyze the difference between php://output and php://stdout
This article gives you a detailed analysis of the usage differences between php://output and php://stdout as well as sample code sharing. Friends in need can refer to it.
PHP includes a series of output streams starting with php://, such as php://stdin, php://stdout, etc. When I was looking at the code today, a question suddenly occurred to me: What is the difference between php://output and php://stdout?
Find the answer from PHP's official documentation. The explanations of the input streams php://stdin and php://input are as follows (the explanation of the output stream is too brief):
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”.
The document does not directly explain the difference between the two. A careful comparison can yield the following information: 1. Both are read-only streams; 2. php://stdin is the standard input of the PHP process, and php://input is used to read the original data of the request body. With this information, how can we correctly understand the essential differences between the two?
Follow the input prompts of the php://stdin process, associate the execution process of the PHP process, and combine it with the differences in SAPI, you can get the main difference between the two: php://stdin is the input stream of the PHP process. Data may flow in during the execution life cycle (such as interactive input under CLI); php://input is the external input stream when PHP is executed. Generally, data can only be read once (see the implementation of SAPI for details). In the same way, we can get the difference between php://stdout and php://output: php://stdout is the standard output stream of the PHP process, and php://output is the returned result data stream.
The following code is used to verify the conclusion:
1 2 3 4 5 6 |
|
The command line executes the file and the output is as follows:
1 2 3 4 |
|
Browser side request, the output is as follows:
1 2 3 |
|
Under the command line, the standard output stream and result output stream of the PHP process are pointed to the terminal and all messages are printed. On the browser side, the output stream of the PHP process is ignored, and only the resulting data stream is sent to the web server. At the same time, the information of print and echo calls are sent to the result output stream as execution results, so they are displayed normally.
Finally, I would like to express my appreciation for the simplicity and practicality of PHP's built-in functions. One file_put_contents function can handle the stream writing operation. Changing to Java requires a lot of stream/writer code, and also saves the cumbersome C-style fopen/fwrite/fclose. .
The above is the detailed content of Analyze the difference between php://output and php://stdout. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.

PHP and Python each have their own advantages, and choose according to project requirements. 1.PHP is suitable for web development, especially for rapid development and maintenance of websites. 2. Python is suitable for data science, machine learning and artificial intelligence, with concise syntax and suitable for beginners.
