PHP input and output streams are accessed through php://, which allows access to PHP's input and output streams, Standard input, output, and error descriptors, in-memory, disk-backed temporary file streams, and filters that can operate on other read-write 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:
<form action="" method="post"> <input type="text" name="test" > <input type="submit" name="" /> </form> <?php 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 file-like wrappers for data streams 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 stores it in a temporary file after the amount of memory reaches a predefined limit (default is 2MB). The temporary file location is determined in the same manner 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:
<?php /* 这会以大写字母输出 www.jb51.net 的全部内容 */ readfile("php://filter/read=string.toupper/resource=http://www.bkjia.com"); ?>