ホームページ > バックエンド開発 > PHPチュートリアル > php file_exists() 関数が効果がないのはなぜですか?

php file_exists() 関数が効果がないのはなぜですか?

怪我咯
リリース: 2023-03-13 14:02:02
オリジナル
2832 人が閲覧しました

file_exists — ファイルまたはディレクトリが存在するかどうかを確認し、指定されたファイルまたはディレクトリが存在する場合は TRUE を返し、存在しない場合は FALSE を返します。 この記事は、php の file_exists の無効な解決策の詳細な分析と紹介です。必要な方は、

方法 1: 公式マニュアルに従って、php チュートリアル を参照してください。セーフモード関連の設定が厳しすぎると、実際にはファイルが存在するのに存在しないと誤って報告される事態が発生します。

サーバー側で php.ini を制御することはできず、ini_set() を使用するときにセーフ モードをオフにすることもできないため、次善の手段に頼って、より信頼性が高く安全な検出方法を見つけることしかできません。ファイルが存在するかどうかを検出します。これは、$_server['document_root'] の助けを借りて実現できます。 $_server['document_root'] は、Web サイトのルート ディレクトリを返します。ディレクトリの最後のサブディレクトリには、次のようにディレクトリ記号「/」が含まれません。
d:/www/htdocs
ルート ディレクトリに、検出する必要があるファイルのパスで絶対パスを取得すると、PHP は file_exists() 関数を使用してそれを検出できます。変更する必要があるのは、上記のコードの最初の行だけです (config.php の前に記号「/」を追加していることに注意してください):
$file=$_server['document_root']."/config.php";このように、コードの実行は非常に信頼性が高く、予期しない結果は発生しません。
上記の方法は、ディレクトリ (is_dir()) またはファイル (is_file()) の関連検出関数にも適用でき、セキュリティで保護されたディレクトリまたはファイルが存在するかどうかを検出できます。

最後に、ちなみに: PHP の特別な設定によって保護されているこのタイプのファイルは、参照するときに $_server['document_root'] パスを追加する必要はありません (
include
および require)。 PHP ドキュメントです。引用は許可されています。

方法 2: 私の場合、ファイルは Windows と Linux の間を行き来しました。その結果、Linux 上のファイルやディレクトリのアクセス権限が変更され、ファイルの所有者以外はアクセス権限を持たなくなります。 chmod -r 755 xxx/* を使用すると問題が解決しました。

以上がphp file_exists() 関数が効果がないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート