php:// — ���ʸ�������/�������I/O streams��
PHP �ṩ��һЩ��������/�����IO������������� PHP �����������������������ʹ����������� �ڴ��С����̱��ݵ���ʱ�ļ����Լ����Բ���������ȡд���ļ���Դ�Ĺ�������
php://stdin��php://stdout ��
php://stderr ����ֱ�ӷ��� PHP ������Ӧ����������������
�����������˸��Ƶ��ļ������������������� php://stdin ����֮���������
���ǹر��˸���Ʒ�����������õ� STDIN
������Ӱ�졣
ע�� PHP ���ⷽ�����Ϊ�кܶ� BUG ֱ�� PHP 5.2.1��
�Ƽ����ʹ�ó��� STDIN
��
STDOUT
�� STDERR
�������ֹ�����Щ��װ����
php://stdin ��ֻ���ģ� php://stdout �� php://stderr ��ֻд�ġ�
php://input �Ǹ����Է��������ԭʼ���ݵ�ֻ������ POST ���������£����ʹ�� php://input ������ $HTTP_RAW_POST_DATA����Ϊ�����������ض��� php.ini ָ� ���ң������������ $HTTP_RAW_POST_DATA Ĭ��û����䣬 �ȼ��� always_populate_raw_post_data DZ����Ҫ���ٵ��ڴ档 enctype="multipart/form-data" ��ʱ�� php://input ����Ч�ġ�
Note: �� PHP 5.6 ֮ǰ php://input ��������ֻ�ܶ�ȡһ�Σ� ��������֧�� seek ������ ������������ SAPI ��ʵ�֣����������ݱ������ʱ�� �����Դ���һ�� php://input �����������¶�ȡ�� ͨ������£��������ֻ����� POST ����������������ʽ������ PUT ���� PROPFIND��
php://fd ����ֱ�ӷ���ָ�����ļ��������� ���� php://fd/3 �������ļ������� 3��
php://memory �� php://temp ��һ�������ļ� ��װ�����������������д��ʱ���ݡ� ���ߵ�Ψһ������ php://memory ���ǰ����ݴ������ڴ��У� �� php://temp �����ڴ����ﵽԤ��������ƺ�Ĭ���� 2MB��������ʱ�ļ��С� ��ʱ�ļ�λ�õľ����� sys_get_temp_dir() �ķ�ʽһ�¡�
php://temp ���ڴ����ƿ�ͨ����� /maxmemory:NN �����ƣ�NN �����ֽ�Ϊ��λ���������ڴ�������������������ʹ����ʱ�ļ���
php://filter ��һ��Ԫ��װ���� ���������������ʱ��ɸѡ����Ӧ�á� �����һ��ʽ��all-in-one�����ļ������dz����ã����� readfile()�� file() �� file_get_contents()�� �����������ݶ�ȡ֮ǰû�л���Ӧ��������������
php://filter Ŀ��ʹ�����µIJ�����Ϊ��·����һ���֡� ���Ϲ������ܹ���һ��·����ָ������ϸʹ����Щ�������Բο����巶����
���� | ���� |
---|---|
resource=<Ҫ���˵�������> | ��������DZ���ġ���ָ������Ҫɸѡ���˵��������� |
read=<������ɸѡ�б�> | �ò�����ѡ�������趨һ���������������ƣ��Թܵ�����|���ָ��� |
write=<д����ɸѡ�б�> | �ò�����ѡ�������趨һ���������������ƣ��Թܵ�����|���ָ��� |
<����������ɸѡ�б�> | �κ�û���� read= �� write= ��ǰ ��ɸѡ���б�������Ӧ���ڶ���д���� |
�汾 | ˵�� |
---|---|
5.6.0 | php://input �ɷ���ʹ�á� |
5.3.6 | ���� php://fd�� |
5.1.0 | ���� php://memory �� php://temp�� |
5.0.0 | ���� php://filter�� |
Example #1 php://temp/maxmemory
�����ѡѡ���������� php://temp ��ʼʹ����ʱ�ļ�ǰ������ڴ����ơ�
<?php
// Set the limit to 5 MB.
$fiveMBs = 5 * 1024 * 1024;
$fp = fopen("php://temp/maxmemory:$fiveMBs", 'r+');
fputs($fp, "hello\n");
// Read what we have written.
rewind($fp);
echo stream_get_contents($fp);
?>
Example #2 php://filter/resource=<�����˵�������>
�����������λ�� php://filter ��ĩβ������ָ����Ҫ����ɸѡ����������
<?php
/* ���ͬ�ڣ�
readfile("http://www.example.com");
ʵ����û��ָ�������� */
readfile("php://filter/resource=http://www.example.com");
?>
Example #3 php://filter/read=<������ҪӦ�õĹ������б�>
�����������һ�����Թܵ��� | �ָ��Ķ�����������ơ�
<?php
/* ����Դ�д��ĸ��� www.example.com ��ȫ������ */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");
/* ��������������һ������������ ROT13 ���ܡ� */
readfile("php://filter/read=string.toupper|string.rot13/resource=http://www.example.com");
?>
Example #4 php://filter/write=<д����ҪӦ�õĹ������б�>
�����������һ�����Թܵ��� | �ָ��Ķ�����������ơ�
<?php
/* ���ͨ�� rot13 ������ɸѡ���ַ� "Hello World"
Ȼ��д�뵱ǰĿ¼�µ� example.txt */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
?>
Example #5 php://memory �� php://temp ��һ���Ե�
php://memory �� php://temp ��һ���Եģ����磺stream ���رպ����ٴεõ���ǰ�������ˡ�
file_put_contents('php://memory', 'PHP');
echo file_get_contents('php://memory'); // ɶҲû��