Вы можете проверить, был ли дескриптор закрыт или нет, используя этот оператор
if(!is_resource($handle)){
//Handle closed
}else{
//Handle still open
}
Поэтому, если вам нужно убедиться, что fclose сработала до запуска следующей функции, вы можете использовать этот цикл:
while(is_resource($handle)){
//Handle still open
fclose($handle);
}
do_awesome_things();
Примечание: Вы также должны использовать break;
, чтобы завершить цикл, когда это необходимо.В этом случае цикл не завершится, пока не будет закрыт дескриптор.