我php://temp
在PHP 5.3.2中读取和编写流时遇到了麻烦
我基本上有:
file_put_contents('php://temp/test', 'test');
var_dump(file_get_contents('php://temp/test'));
Run Code Online (Sandbox Code Playgroud)
我得到的唯一输出是 string(0) ""
我不应该回到我的'测试'吗?
dec*_*eze 21
php://temp
它不是文件路径,它是一种伪协议,在使用时始终会创建一个新的随机临时文件.在/test
实际上被完全忽略.php://temp
包装器接受的唯一额外"参数" 是/maxmemory:n
.您需要将文件句柄保持在打开的临时流中,否则它将被丢弃:
$tmp = fopen('php://temp', 'r+');
fwrite($tmp, 'test');
rewind($tmp);
fpassthru($tmp);
fclose($tmp);
Run Code Online (Sandbox Code Playgroud)
见http://php.net/manual/en/wrappers.php.php#refsect1-wrappers.php-examples
每次,当你使用fopen来获取处理程序时,php:// temp的内容都会被刷新.使用rewind()和stream_get_contents()来获取内容.或者,使用普通的cachers,如APC或memcache :)
归档时间: |
|
查看次数: |
15928 次 |
最近记录: |