ファイルが存在するかどうかを確認するには、絶対パスを使用する必要があります。
$abs_path = '/var/www/example.com/public_html/images/';
$file_url = 'http://www.example.com/images/' . $filename;
if (file_exists($abs_path . $filename)) {
echo "The file exists. URL:" . $file_url;
} else {
echo "The file does not exist";
}
CMSまたはPHPフレームワークを記述している場合、私が知る限り、それらすべてがドキュメントルートパスの定数を定義しています。
たとえば、WordPressはABSPATHを使用します。これは、コードとサイトのURLを使用してサーバー上のファイルを操作するためにグローバルに使用できます。
Wordpressの例:
$image_path = ABSPATH . '/images/' . $filename;
$file_url = get_site_url() . '/images/' . $filename;
if (file_exists($image_path)) {
echo "The file exists. URL:" . $file_url;
} else {
echo "The file does not exist";
}
ここでさらに1マイル進みます:)。このコードはそれほどメンテナンスを必要とせず、かなりしっかりしているので、ifステートメントを簡略化して記述します。
$image_path = ABSPATH . '/images/' . $filename;
$file_url = get_site_url() . '/images/' . $filename;
echo (file_exists($image_path))?'The file exists. URL:' . $file_url:'The file does not exist';
省略されたIFステートメントの説明:
$stringVariable = ($trueOrFalseComaprison > 0)?'String if true':'String if false';