web-dev-qa-db-ja.com

ファイルがPHPに存在するかどうかを確認してください

if (!(file_exists(http://mysite.com/images/thumbnail_1286954822.jpg))) {   
$filefound = '0';                         
}

なぜこれが機能しないのですか?

32
anonymous
if (!file_exists('http://mysite.com/images/thumbnail_1286954822.jpg')) {   
$filefound = '0';                         
}
52
Haim Evgi
  1. 関数は文字列を予期しています。

  2. file_exists()は、HTTP URLでは正しく機能しません。

file_exists指定したパスにファイルが存在するかどうかを確認します。

構文:

file_exists ( string $filename )

Filenameで指定されたファイルまたはディレクトリが存在する場合、TRUEを返します。それ以外の場合はFALSE

$filename = BASE_DIR."images/a/test.jpg";
if (file_exists($filename)){
    echo "File exist.";
}else{
    echo "File does not exist.";
}

Getimagesize()を使用できる別の代替方法は、指定されたパスでファイル/ディレクトリが利用できない場合、0(zero))を返します。

if (@getimagesize($filename)) {...}
12
IRSHAD

Haimへのコメントに基づいて、これは自分のサーバー上のファイルですか?その場合、URLではなくファイルシステムパスを使用する必要があります(例:file_exists( '/path/to/images/thumbnail.jpg' ))。

5
JJJ

私にとっても、file_exists()関数は正しく機能していません。だから私はこの代替ソリューションを得ました。これが誰かを助けることを願っています

$path = 'http://localhost/admin/public/upload/video_thumbnail/thumbnail_1564385519_0.png';

    if (@GetImageSize($path)) {
        echo 'File exits';
    } else {
        echo "File doesn't exits";
    }
0
Nashir