私がそうしているとしましょうfopen('filename.ext', 'w');
が、ハンドルを保存しませんでした。次に、そのファイルを削除する必要があります。このファイルにハンドルがアタッチされていることを確認し、次にその名前のないハンドルを閉じる方法はありますか?
2 に答える
1
ドキュメントから:
PHP 4 の Zend Engine で導入された参照カウント システムのおかげで、リソースへの参照がなくなったリソースは自動的に検出され、ガベージ コレクターによって解放されます。このため、メモリを手動で解放する必要はほとんどありません。
于 2012-10-28T21:02:37.967 に答える
0
Linux では、一覧表示してハンドルと対応するファイル名を取得できますが、/proc/self/fd/
プラットフォームに依存しない php 関数はありません。
乱暴にハンドルを閉じる代わりに、fopen
呼び出しを try .. finally ブロックでラップする必要があります (php 5.3+):
$f = fopen('filename.ext', 'w');
if ($f !== false) {
try {
// Some code that may throw an exception
} finally {
fclose($f);
}
}
少なくとも POSIX システムでは、ハンドルを保持している間にファイル (名前) を削除することもできることに注意してください。
于 2012-10-28T21:04:36.277 に答える