如何从php:// temp wrapper中删除文件

时间:2012-01-17 11:44:06

标签: php file memory wrapper temp

在PHP中,我使用内存(或更确切地说,temp in-memory)文件将外部URL中的图像加载到GD资源中:

$file = 'php://temp/img';
copy($uri, $file);
$src_img = @imagecreatefromjpeg($file);

但是,据我所知,这个文件仍保留在内存中,即使我在imagecreatefromjpeg()之后没有使用它。

有没有办法释放php://临时包装文件使用的内存?

或至少发出不再使用该文件的信号?

1 个答案:

答案 0 :(得分:7)

php:// temp (或php://内存)中创建文件时,资源仅持续脚本的生命周期。如果使用fopen()打开文件以获取资源句柄,则可以使用fclose($resource_handle)缩短生命周期。

在您的情况下,只要您的脚本执行完毕,该文件就不再存在于内存中。

在您希望在脚本完成之前清除内存的情况下,您所要做的就是fclose()资源文件指针。

另一方面,您使用的/img无效且被忽略。唯一可识别的数据是/maxmemory:n