php流协议
php://
php://stdin php://stdout php://stderr 访问php进程的输入或者输出流。
php://input 访问请求的原始数据的只读流
php://output 一个只写的数据流(导出可以用这个)
php://memory php://temp 是一个类似文件 包装器的数据流,允许写入临时数据。php://temp/maxmemory:23*1024*1024byte,会在内存量达到预定义限制(默认2m)后,写入临时文件中。可以用于导出时写入比较小的文件。
php://filter 一种元封装器,在打开数据时可以先进行筛选。
php://temp/maxmemory 示例
$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);
php://filter示例
/* 这会以大写字母输出 www.example.com 的全部内容 */
readfile("php://filter/read=string.toupper/resource=http://www.example.com");
/* 这会通过 rot13 过滤器筛选出字符 "Hello World"
然后写入当前目录下的 example.txt */
file_put_contents("php://filter/write=string.rot13/resource=example.txt","Hello World");
php://memory
$fp = fopen('php://memory', 'r+');
fputcsv($fp, ['name', 'age']);
fputcsv($fp, ['Jack', 23]);
fclose();