PHP input and output streams are accessed through php://, which allows access to PHP's input and output streams, standard input and output, and error descriptors, temporary file streams in memory, disk backup, and operations Other filters for reading and writing file resources.
php://stdin, php://stdout and php://stderr
php://stdin, php://stdout and php://stderr allow access to the corresponding input or output streams of the PHP process.
php://input
php://input is a read-only stream that provides access to the requested raw data. In the case of POST requests, it is best to use php://input instead of $HTTP_RAW_POST_DATA (native post data), because it does not rely on specific php.ini instructions and consumes less memory. For example:
echo file_get_contents("php://input");
?>
Result:
php://output
php://output is a write-only data stream that allows you to write to the output buffer in the same way as print and echo.
php://fd
php://fd allows direct access to the specified file descriptor. For example, php://fd/3 refers to file descriptor 3.
php://memory and php://temp
php://memory and php://temp are data streams similar to file wrappers that allow reading and writing temporary data. The only difference between the two is that php://memory always stores data in memory, while php://temp will save it to a temporary file after the amount of memory reaches a predefined limit (default is 2MB). The temporary file location is determined in the same way as sys_get_temp_dir().
php://filter
php://filter is a meta-wrapper designed for filtering applications when a data stream is opened. This is useful for all-in-one file functions like readfile(), file(), and file_get_contents(), where there is no opportunity to apply additional filters before the stream contents are read. The parameters are as follows:
Example below:
/* This will output the entire content of http://www.phpcom.cn/ in uppercase letters */
readfile("php://filter/read=string.toupper/resource=http://www.phpcom.cn");
?>