ホームページ > バックエンド開発 > PHPの問題 > PHP はフォルダー内の画像が存在するかどうかを判断します

PHP はフォルダー内の画像が存在するかどうかを判断します

王林
リリース: 2023-05-06 19:16:05
オリジナル
779 人が閲覧しました

PHP プログラムのケースを開発する場合、特定のフォルダーに特定の種類のファイル (画像など) が存在するかどうかを確認する必要があることがよくあります。このような判断は、Web サイト開発におけるいくつかの問題、たとえば、ユーザーが写真をアップロードするときに、写真が正常にアップロードされたかどうかを確認する必要がある場合に解決するのに役立ちます。この記事では、PHP がフォルダー内の画像が存在するかどうかを判断する方法を紹介します。

フォルダー内の画像ファイルが存在するかどうかを確認する方法はいくつかありますが、以下で個別に説明します。

方法 1: glob() 関数を使用する

glob() 関数は、フォルダー内のすべてのファイルを取得することも、フォルダー内の指定されたサフィックス名のファイルを取得することもできます。

たとえば、「my_folder」という名前のフォルダーがあり、このフォルダーには jpg 形式の画像ファイルがいくつか含まれています。次のコードを使用して、フォルダー内に jpg ファイルがあるかどうかを確認できます。

$dir = "my_folder/";
$files = glob($dir . "*.jpg");

if (count($files) > 0) {
    echo "Folder contains jpg files";
} else {
    echo "Folder does not contain jpg files";
}
ログイン後にコピー

上記のコードは、最初に $dir をフォルダー パスとして指定し、次に glob() 関数を使用してすべての jpg ファイルを取得し、保存します。それらは配列内の $file にあります。最後に配列内にファイルが存在するかどうかを確認し、存在する場合は「フォルダーにjpgファイルが含まれています」、存在しない場合は「フォルダーにjpgファイルが含まれていません」と出力します。

glob() 関数を使用する利点は、指定した種類のすべてのファイルを取得できることですが、欠点は、効率が低いことです。フォルダー内に多数のファイルがある場合、プログラムがフリーズする原因となります。

方法 2: scandir() 関数を使用する

scandir() 関数は、指定されたディレクトリ内のすべてのファイルとフォルダーを返すことができます。

たとえば、「my_folder」という名前のフォルダーがあり、このフォルダーには jpg 形式の画像ファイルがいくつか含まれています。次のコードを使用して、フォルダー内に jpg ファイルがあるかどうかを確認できます。

$dir = "my_folder/";
$files = scandir($dir);

foreach($files as $file) {
    if (strtolower(pathinfo($file, PATHINFO_EXTENSION)) == "jpg") {
        echo "Folder contains jpg files";
        break;
    } else {
        echo "Folder does not contain jpg files";
    }
}
ログイン後にコピー

上記のコードでは、まず $dir をフォルダー パスとして指定し、次に scandir() 関数を使用してすべてのファイルとフォルダーを取得します。そしてそれらを $files 配列に保存します。次に、foreach を使用して配列をループし、pathinfo() 関数を使用して各ファイルの拡張子を取得し、それが jpg タイプであるかどうかを判断します。はいの場合は「フォルダーに jpg ファイルが含まれています」と出力し、そうでない場合は「フォルダーには jpg ファイルが含まれていません」と出力します。

scandir() 関数を使用する利点は、より効率的であることですが、. や .. などの不要なファイルが取得される可能性があるため、これらのファイルをフィルタリングするために if 判定を使用する必要があります。

方法 3: file_exists() 関数を使用する

file_exists() 関数は、指定されたファイルが存在するかどうかを判断できます。

たとえば、「my_folder」という名前のフォルダーがあり、このフォルダーには jpg 形式の画像ファイルがいくつか含まれています。次のコードを使用して、フォルダー内に jpg ファイルがあるかどうかを確認できます。

$dir = "my_folder/";
$filename = $dir . "my_image.jpg";

if (file_exists($filename)) {
    echo "File exists";
} else {
    echo "File does not exist";
}
ログイン後にコピー

上記のコードでは、最初にフォルダー パスとして $dir を指定し、次に検索するファイル名を指定します。次に、file_exists()関数を使用してファイル名が存在するかどうかを確認し、存在する場合は「ファイルが存在します」、存在しない場合は「ファイルが存在しません」と出力します。

file_exists() 関数を使用する利点は、シンプルで明確であることですが、この関数が判断できるのは 1 つのファイルが存在するかどうかのみであり、フォルダー内に指定された種類のファイルが存在するかどうかは判断できません。

結論

PHP がフォルダー内の画像が存在するかどうかを判断する場合、glob() 関数、scandir() 関数、または file_exists() 関数を使用できます。どの機能を使用するかは実際の状況によって異なり、自分のニーズに応じて選択する必要があります。

どの方法を使用する場合でも、フォルダー内の写真が存在するかどうかを判断するときは、プログラムが指定されたファイルを正確に見つけることができるように、ファイルのパスと名前に注意を払う必要があります。

以上がPHP はフォルダー内の画像が存在するかどうかを判断しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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