6

次のコードを試して、ルートにファイルが存在することを確認しました。

if($res['profile_picture']!="" && file_exists("images/".$res['users_id']."/thumnails/".$res['profile_picture'])){
    $photo_p="images/".$res['users_id']."/thumnails/".$res['profile_picture'];
}

サブディレクトリではなくルートディレクトリでのみ機能します。

関数 file_exist が絶対パスと相対パスの両方をチェックするかどうかわからないので、ROOT と$_SERVER['DOCUMENT_ROOT']. しかし、それでもうまくいきませんでした。

ヘルプはありますか?

4

2 に答える 2

4

コードの移植性のためにfile_exists()、 のような関数では常に絶対パスを使用することをお勧めします。そうしないと、異なるディレクトリに複数のファイルを含めたり、CLI モードで実行したりするときに頭が混乱する可能性があります。

ROOTコード内で定数が定義されていない可能性があります。また、Apache モジュール$_SERVER['DOCUMENT_ROOT']を使用する場合など、状況によっては信頼できない場合もあります。vhost_alias

一般的、

file_exists("{$_SERVER['DOCUMENT_ROOT']}/images/{$res['users_id']}/thumnails/{$res['profile_picture']}")

あなたのために働くはずです。

于 2012-07-14T17:01:16.217 に答える
0

関数 file_exists() は、指定したパスを正確にチェックします。そこには派手な魔法はありません。

絶対パスを渡すと、そのパスがチェックされます。相対パスを渡すと、現在の作業ディレクトリからチェックされます。実際に作業ディレクトリが何であるかを考えてみてください。

于 2012-07-14T17:02:19.713 に答える