From dee646f55f88a7ef495206f849c734c63b3e8977 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AD=A6=E7=94=B0=20=E6=86=B2=E5=A4=AA=E9=83=8E?= Date: Wed, 28 Oct 2026 23:23:26 +0900 Subject: [PATCH] =?UTF-8?q?filesystem=20=E3=82=92=E5=8E=9F=E6=96=87?= =?UTF-8?q?=E3=81=AE=E5=A4=89=E6=9B=B4=E3=81=AB=E8=BF=BD=E5=BE=93=20(7?= =?UTF-8?q?=E3=83=95=E3=82=A1=E3=82=A4=E3=83=AB)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- reference/filesystem/entities.ent | 25 +++++++++++++++++++ .../filesystem/functions/clearstatcache.xml | 14 ++++++++--- .../filesystem/functions/file-exists.xml | 4 +-- .../filesystem/functions/is-executable.xml | 4 +-- .../filesystem/functions/is-readable.xml | 4 +-- .../filesystem/functions/is-writable.xml | 4 +-- reference/filesystem/functions/link.xml | 9 +------ 7 files changed, 44 insertions(+), 20 deletions(-) create mode 100644 reference/filesystem/entities.ent diff --git a/reference/filesystem/entities.ent b/reference/filesystem/entities.ent new file mode 100644 index 0000000000..42eabd12cc --- /dev/null +++ b/reference/filesystem/entities.ent @@ -0,0 +1,25 @@ + + + + + + + + + + ローカルファイルの場合、この関数の結果はキャッシュされず、 + 呼び出すたびにファイルを調べ直します。 + 他のラッパーを使うパスの場合は、 + 結果がキャッシュされます。 + 詳細は、clearstatcache を参照してください。 + + + + + diff --git a/reference/filesystem/functions/clearstatcache.xml b/reference/filesystem/functions/clearstatcache.xml index 9792062ba4..a16a4b4a7a 100644 --- a/reference/filesystem/functions/clearstatcache.xml +++ b/reference/filesystem/functions/clearstatcache.xml @@ -1,6 +1,6 @@ - + @@ -26,14 +26,14 @@ このようなケースでは、clearstatcacheを使用することで ファイルの情報に関してPHPが持っているキャッシュをクリアすることができます。 - + PHP は存在しないファイルについての情報はキャッシュしないことにも 注意してください。もし存在しないファイルに対して - file_exists をコールする場合、ファイルを作成するまで + is_file をコールする場合、ファイルを作成するまで この関数は &false; を返します。もしファイルを作成した場合、 たとえファイルを削除したとしても &true; を返します。 しかし、unlink はキャッシュを自動的にクリアします。 - + この関数は特定のファイルに関する情報をキャッシュします。したがって、 @@ -63,6 +63,12 @@ filetype, および fileperms. + + file_exists、is_writable、 + is_readable、is_executable + は、ローカルファイルシステム以外のラッパーを使うパスに対してだけキャッシュを使います。 + ローカルファイルは毎回直接調べます。 + diff --git a/reference/filesystem/functions/file-exists.xml b/reference/filesystem/functions/file-exists.xml index eaf288fdbb..6d192fdbbd 100644 --- a/reference/filesystem/functions/file-exists.xml +++ b/reference/filesystem/functions/file-exists.xml @@ -1,6 +1,6 @@ - + @@ -90,7 +90,7 @@ if (file_exists($filename)) { &reftitle.notes; - ¬e.clearstatcache; + &ext.filesystem.access-check-cache; &tip.fopen-wrapper.stat; diff --git a/reference/filesystem/functions/is-executable.xml b/reference/filesystem/functions/is-executable.xml index 34efc48a0a..3b8d66dc80 100644 --- a/reference/filesystem/functions/is-executable.xml +++ b/reference/filesystem/functions/is-executable.xml @@ -1,6 +1,6 @@ - + @@ -77,7 +77,7 @@ if (is_executable($file)) { &reftitle.notes; - ¬e.clearstatcache; + &ext.filesystem.access-check-cache; &tip.fopen-wrapper.stat; diff --git a/reference/filesystem/functions/is-readable.xml b/reference/filesystem/functions/is-readable.xml index 7c1478071d..9c72d99d4a 100644 --- a/reference/filesystem/functions/is-readable.xml +++ b/reference/filesystem/functions/is-readable.xml @@ -1,6 +1,6 @@ - + @@ -77,7 +77,7 @@ if (is_readable($filename)) { PHP は、Web サーバーを実行しているユーザー ID (たいていは 'nobody') でファイルにアクセスすることを覚えておいてください。 - ¬e.clearstatcache; + &ext.filesystem.access-check-cache; &tip.fopen-wrapper.stat; diff --git a/reference/filesystem/functions/is-writable.xml b/reference/filesystem/functions/is-writable.xml index 444ebc46f2..80543826db 100644 --- a/reference/filesystem/functions/is-writable.xml +++ b/reference/filesystem/functions/is-writable.xml @@ -1,6 +1,6 @@ - + @@ -78,7 +78,7 @@ if (is_writable($filename)) { &reftitle.notes; - ¬e.clearstatcache; + &ext.filesystem.access-check-cache; &tip.fopen-wrapper.stat; diff --git a/reference/filesystem/functions/link.xml b/reference/filesystem/functions/link.xml index be5e1d0cb7..49375cc4ee 100644 --- a/reference/filesystem/functions/link.xml +++ b/reference/filesystem/functions/link.xml @@ -1,6 +1,6 @@ - + @@ -82,13 +82,6 @@ link($target, $link); &reftitle.notes; ¬e.no-remote; - - - Windows のみ: この関数を使用するには、 - 権限を昇格させたモード、あるいは UAC を無効にした状態で PHP を実行しなければなりません。 - - -