из php.net
resource fopen ( string $filename , string $mode [, bool $use_include_path = false [, resource $context ]] )
fopen()
привязывает именованный ресурс, определенный filename
, к потоку.
fopen()
, как только он будет назван, он "кеширует" файл и выведет в указанном вами методе, например, ваш $contents = fread($handle, 10);
Вы можете удалить файл, и он все равно будет читать этот ресурс, пока не завершит файл !feof($handle)
Вы ничего не можете сделать с fopen()
, вы просто не можете перечитать источник и продолжить его печать.