How to make sure a file handle has been closed bef

2019-07-03 12:38发布

This is the code I have so far, I wonder if it's correct?

$handle = fopen($file, 'w') or die("can't open file");
$closed = fclose($handle);
while($closed){
    DOAWESOMETHINGS(); // btw I only want to have this run once for each handle
    $closed = false;
}

Thank you so much!

1条回答
你好瞎i
2楼-- · 2019-07-03 13:18

You can check whether the handle has been closed or not using this statement

if(!is_resource($handle)){
   //Handle closed
}else{
   //Handle still open
}

Therefore, if you need to ensure that fclose has worked before running the next function, you can use this loop:

while(is_resource($handle)){
   //Handle still open
   fclose($handle);
}
do_awesome_things();

Note: You should also use break; to end while loops when you need to. In this instance the loop will not end until the handle is closed.

查看更多
登录 后发表回答