PHP複数ファイルを順番に削除

【PHP入門】複数ファイルを順番に削除する方法|file_existsとunlinkの使い方を解説

PHPで複数のファイルを自動的に削除したいと考えていませんか?
この記事では、PHP初心者でもわかりやすいように、ファイルの存在確認から削除処理までを丁寧に解説します。

2025年7月25日

この記事でわかること

  • PHPでファイルが存在するかを確認する方法
  • PHPでファイルを削除する基本的なコード
  • 配列に入った複数ファイルをループで削除する実用例
  • よくあるエラーとその対処法

PHPでファイルを削除するには?【基本知識】

PHPでファイルを削除するには、以下の2つの関数を使います。

file_exists():ファイルの存在確認

file_exists('f1.png'); // true なら存在している

unlink():ファイルを削除する

unlink('f1.png'); // 成功すれば true を返す

実用例:配列に入った複数ファイルを順番に削除するコード

以下は、配列に格納されたファイル名(例:["f1.png", "f2.png"])を順番に確認し、存在していれば削除していくコードです。

<?php

$files = ["f1.png", "f2.png"];

foreach ($files as $file) {
    if (file_exists($file)) {
        if (unlink($file)) {
            echo "$file を削除しました。\n";
        } else {
            echo "$file の削除に失敗しました。\n";
        }
    } else {
        echo "$file は存在しません。\n";
    }
}

🔍 解説

  • $files:削除したいファイル名の配列。
  • file_exists($file):ファイルが存在するかチェック。
  • unlink($file):ファイルを削除。
  • foreach:配列内のすべてのファイルを順番に処理。

よくあるエラーと対処法

❌ Permission denied(パーミッション拒否)

  • ファイルの削除権限がない場合に発生します。
  • 対処法:対象ファイルやディレクトリのパーミッション(chmod)を確認しましょう。
chmod 755 your-folder

❌ ファイルが存在しないのに削除しようとしている

  • unlink() だけを使うと、存在しないファイルでエラーになります。
  • 事前に file_exists() でチェックするのがベストプラクティスです。

応用:特定ディレクトリの中のファイルを削除したい場合

$files = ["uploads/f1.png", "uploads/f2.png"];

パスを調整すれば、サブディレクトリ内のファイルにも対応できます。

まとめ

PHPで複数ファイルを削除するには、以下のような流れを守ると安全で効率的です。

  1. file_exists()で存在確認
  2. unlink()でファイルを削除
  3. foreachで複数ファイルを処理
// 実用的なコード再掲
foreach ($files as $file) {
    if (file_exists($file)) {
        unlink($file);
    }
}

これで、不要なファイルを確実に削除できるようになります。
シンプルだけど実用的なPHPスクリプトとして、ぜひ参考にしてみてください!

関連記事

.htaccessは階層で引き継がれる?Apacheの挙動を徹底解説

MBTI診断

SEO対策に必須!検索上位を狙うsitemap.xmlの完全ガイド

Google Search Consoleの「代替ページ(適切なcanonicalタグあり)」とは?原因と解決法を徹底解説!

Microsoft純正の新しいコンソールエディタ「edit」が復活!| edit.exe インストール方法

Googleサイト確認のTXTレコードをnslookupで確認する方法【SEO対策】

Googleサーチコンソールに反映されるための最低限のSEO構造とは

PHPで複数ファイルを順番に削除する方法

git switchの使い方とgit checkoutとの違い

MBTI診断 | あなたの性格タイプを分析

PDFファイル結合|パスワード設定ツール

HTMLとJavaScriptモジュールでクラスを定義し、ボタンから呼び出す方法

JavaScriptでTensorFlow.jsを動的に読み込む方法|HTMLに直接書かずに機械学習を実行する

スマホ新法とEU事例|Apple Storeの未来とユーザーへの影響

ChatGPT風リンクバッジをCSSで作成する

MariaDB 10.9|INSERT 時だけ自動で日付を入れるカラムを追加する方法

Windows 11でタスクマネージャー以外からアプリを終了させる方法【PowerShell・コマンドプロンプト】

macOSでドメイン名から情報を取得する方法【初心者向け】

JavaScriptでPCの空き容量やメモリ量を取得できる?Chromeの制限と代替手法

PowerShellでNode.jsの最新バージョン一覧を確認する方法【Volta/Windows対応】

Next.jsでbasePathを/homepage2にしてS3へ静的デプロイする完全手順

Homebrewの「update」と「upgrade」の違い+バージョン確認方法|Macのパッケージ管理

.DS_StoreをGitでアップしない方法|macユーザー向け