Как удалить файл из php://temp wrapper

В PHP я использую in-memory (или, скорее, temp in-memory) файл для загрузки изображения из внешнего URL в ресурс GD:

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

Однако, как я понимаю, этот файл остается в памяти, хотя я не могу использовать его после imagecreatefromjpeg().

Есть ли способ освободить память, используемую файлом php://temp wrapper?

Или по крайней мере сигнал о том, что файл больше не используется?

Ответ 1

Когда вы создаете файл в php://temp (или, например, в памяти php://), ресурс продлевает срок службы script. Если вы откроете файл с помощью fopen(), чтобы получить дескриптор ресурса, срок службы можно сократить с помощью fclose($resource_handle).

В вашем случае, как только ваш script будет выполнен, файл больше не будет в памяти.

В том случае, когда вы хотите очистить память до завершения script, все, что вам нужно сделать, это fclose() указатель файла ресурса.

В другой заметке используемый вами /img недопустим и игнорируется. Единственными добавленными признанными данными являются /maxmemory:n.