現在の位置: ホーム> 最新記事一覧> PHP を使用して FTP サーバーを実装し、古いファイルを定期的にクリーンアップするための完全なチュートリアル

PHP を使用して FTP サーバーを実装し、古いファイルを定期的にクリーンアップするための完全なチュートリアル

M66 2025-11-03

PHP を使用して FTP サーバーを実装し、古いファイルを定期的にクリーンアップするための完全なチュートリアル

Web サイトの開発と保守のプロセスでは、ファイルのアップロード、ダウンロード、バックアップ管理に FTP サーバーがよく使用されます。ただし、時間の経過とともに、役に立たない古いファイルがサーバー上に大量に蓄積され、貴重なストレージ容量が占有されてしまいます。システムを整理整頓してパフォーマンスを向上させるには、古いファイルを定期的に削除する必要があります。この記事では、PHP スクリプトを使用して FTP サーバーに自動クリーニング タスクを実装する方法を紹介します。

FTP サーバーの基本概念を理解する

FTP (ファイル転送プロトコル) は、インターネット上で最も一般的に使用されているファイル転送プロトコルの 1 つです。 FTP クライアントまたはスクリプト プログラムを通じて、リモート サーバー上のファイルのアップロード、ダウンロード、削除などの操作を実行できます。古いファイルを自動削除する機能を実装するには、まずPHPを使用してFTPサーバーに接続し、ファイル情報を取得する必要があります。

PHPを使用してFTPサーバーに接続します

PHP は、FTP サーバーに簡単に接続して対話できる組み込みの FTP 関数ライブラリを提供します。例は次のとおりです。

 $ftpServer = 'ftp.example.com';
$ftpUsername = 'username';
$ftpPassword = 'password';

$connId = ftp_connect($ftpServer);
$loginResult = ftp_login($connId, $ftpUsername, $ftpPassword);

if ($connId && $loginResult) {
    // 接続成功
} else {
    // 接続に失敗しました,エラーの処理
}

上記のコードでは、接続の確立に ftp_connect() が使用され、ログイン認証に ftp_login() が使用されます。次のステップにスムーズに進む前に、サーバー アドレス、ユーザー名、パスワードが正しく入力されていることを確認してください。

FTPディレクトリ内のファイルリストを取得する

接続が成功したら、FTP サーバーのディレクトリ内のファイル リストを取得する必要があります。 ftp_nlist() 関数を使用できます。

 $ftpDirectory = '/path/to/directory/';
$fileList = ftp_nlist($connId, $ftpDirectory);

foreach ($fileList as $file) {
    echo $file . '<br>';
}

上記のコードは、指定されたディレクトリ内のすべてのファイルの名前を出力し、後続のフィルタリングおよび削除操作の基礎を提供します。

FTPサーバーから古いファイルを削除する

次に、ファイルの変更時刻に基づいて古いファイルかどうかを判断し、削除操作を実行します。サンプルコードは次のとおりです。

 $ftpDirectory = '/path/to/directory/';
$daysAgo = 30; // 消去30数日前のファイル

$fileList = ftp_nlist($connId, $ftpDirectory);

foreach ($fileList as $file) {
    $fileTimestamp = ftp_mdtm($connId, $file);
    $fileTimestamp = date_create_from_format('YmdHis', $fileTimestamp);
    $currentTimestamp = date_create();

    $diff = date_diff($currentTimestamp, $fileTimestamp);
    $elapsedDays = $diff->format('%a');

    if ($elapsedDays > $daysAgo) {
        ftp_delete($connId, $file);
        echo '已消去文件:' . $file . '<br>';
    }
}

このスクリプトは、指定されたディレクトリ内のファイルを走査し、各ファイルの変更日を特定し、設定された日数より古い古いファイルを自動的に削除します。

Linux のスケジュールされたタスクを自動実行用に設定する

スクリプトを定期的に実行するには、Linux システムで cron スケジュールされたタスクを使用できます。ターミナルで次のコマンドを実行して、crontab を編集します。

 crontab -e

次に、次のルールを追加します。

 0 0 * * * php /path/to/script.php

上記のコマンドは、システムが毎朝 1 回 PHP スクリプトを自動的に実行して、古いファイルを自動的にクリーンアップする機能を実現することを意味します。

要約する

この記事の導入を通じて、PHP スクリプトを使用して、FTP サーバー上の古いファイルを定期的に削除する完全なプロセスを実装する方法を学びました。 FTP サーバーへの接続、ファイル リストの走査、ファイル時間の特定から cron タスクの設定に至るまで、すべてのステップが重要です。この方法により、サーバーのスペースを効果的に解放し、パフォーマンスを最適化し、手動メンテナンスの作業負荷を軽減できます。これは、毎日大量のファイルを管理する Web サイトやアプリケーションにとって実用的で効率的なソリューションです。