Как удалить файл из php: // temp wrapper - PullRequest
10 голосов
/ 17 января 2012

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

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

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

он мне не нужен.

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

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

1 Ответ

7 голосов
/ 18 января 2012

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

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

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

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

...