file_exists 関数で非常に奇妙な状況に遭遇しました。ホスティング会社は、php が PHP モードではなく CGI モードで構成されていると述べました。以下はコードです。コードを含むページをロードするとき、50 秒ほどの間にデータ フォルダー内の test.txt というファイルの存在をオンザフライでチェックします。ファイルが見つかった場合は、「ファイルが存在します」と表示し、while ループを終了します。50 秒以内にファイルが見つからない場合は、「ファイルが存在しません」と表示され、ループが中断され、ページの読み込みが終了します。
奇妙なこと 1: 期待どおりに動作していませんでした。ファイルが存在するときに初めてページをロードしたときにのみファイルを見つけることができます。ページを更新したときに test.txt が削除された後も、「ファイルが存在します」と表示され続けます。test.txt がデータ フォルダーにまったくない場合、フォルダーに test.txt を戻しても「ファイルが存在しません」と表示されます。
奇妙なこと 2: サイズが 170K を超える大きなファイルを配置すると、うまく機能しているように見えますが、特に 40 バイト未満の小さなファイルはそうではありません。絶対パスを含むファイルの存在を確認するためにさまざまな方法を試しましたが、まだ運がありません。
手がかりをありがとう!
ページを読み込んでいます...
$counter= 1;
while ($counter++) {
sleep(5);
if (file_exists("data/test.txt")) {
echo "File exists";
break;
}
if ($counter>10){
echo "File does not exist";
break;
}
}