※ この記事にはアフィリエイトリンクが含まれます
PHPはWebアプリケーション開発で広く使われていますが、実はCLI(コマンドライン)から実行することで、バッチ処理にも活用できることをご存知でしょうか。
普段書いているPHPコードを少し工夫するだけで、自動化や定期処理を実現できるのです。
本記事では、
- PHPでバッチファイルを作成する方法
- 実際のサンプルコード
- WindowsやLinuxでの定期実行の設定方法
をわかりやすく解説していきます。
記事の後半では「バッチ処理スキルが実務や転職でどのように評価されるのか」についても触れています。エンジニアとしてキャリアを磨きたい方にも役立つ内容となっていますので、ぜひ最後までご覧ください。
PHPの学習をしていく上で、役に立った書籍を紹介します。
PHPでバッチ処理を作る基本手順
PHPでバッチ処理を行う場合、通常のWebアプリケーションとは異なり、CLI(コマンドライン)からスクリプトを実行します。これによりブラウザを介さずに直接PHPを動かすことができます。
PHPファイルの作成
まずは通常のPHPファイルを作成します。ここでは、例としてbatch.php
という名前で作成します。
<?php
// バッチ処理のサンプル
echo "バッチ処理を開始します...\n";
// ここに処理内容を書く
for ($i = 1; $i <= 5; $i++) {
echo $i . " 回目の処理を実行中...\n";
sleep(1); // 1秒待機
}
echo "バッチ処理が完了しました。\n";
コマンドラインから実行
作成したバッチ処理を実行してみましょう。ターミナルやコマンドプロンプトで、以下のように入力します。
php batch.php
実行すると、先ほどのスクリプトが順番に処理されていきます。
Windowsでの実行(.batファイルを作成)
Windowsでは、バッチファイル(.bat)を作成しておくと、ファイルをダブルクリックでPHPを実行できます。

run_batch.bat
というようなバッチファイルを作成し、以下のように記述すると、run_batch.bat
をダブルクリックすることでPHPを実行できます。
@echo off
php C:\xampp\htdocs\batch.php
pause
Linuxでの実行(cronを使用)
Linuxではcron
に登録することで、定期的にPHPを実行できます。

例:毎日0時にbatch.php
を実行する設定
0 0 * * * /usr/bin/php /var/www/html/batch.php
実際にPHPでバッチ処理を作ってみよう
ここからは、PHPで実際にバッチ処理を作成する例を紹介します。
例1:データベースの更新バッチ
「毎晩0時にユーザーのステータスを更新する」処理です。
<?php
// DB接続(PDOを使用)
$dsn = "mysql:host=localhost;dbname=test;charset=utf8";
$user = "root";
$password = "";
try {
$pdo = new PDO($dsn, $user, $password);
echo "データベース接続成功\n";
// 30日以上ログインしていないユーザーを「休眠」に更新
$sql = "UPDATE users SET status = 'inactive' WHERE last_login < NOW() - INTERVAL 30 DAY";
$count = $pdo->exec($sql);
echo "更新件数: {$count} 件\n";
echo "処理完了\n";
} catch (PDOException $e) {
echo "エラー: " . $e->getMessage() . "\n";
}
ポイント
PDO
を使って安全に接続- 更新件数をログに出力しておくとトラブル時に調査しやすい
例2:ログを保存するバッチ
毎日アクセスログをファイルに保存する簡単な例です。
<?php
$logDir = __DIR__ . "/logs";
// ディレクトリがなければ作成
if (!file_exists($logDir)) {
mkdir($logDir, 0777, true);
}
// 今日の日付のファイル名を作成
$filename = $logDir . "/access_" . date("Ymd") . ".log";
// ログ内容を書き込み
$log = "[" . date("Y-m-d H:i:s") . "] アクセスログを記録しました\n";
file_put_contents($filename, $log, FILE_APPEND);
echo "ログファイルに出力しました: {$filename}\n";
ポイント
- 日付ごとにファイルを分けると管理が楽
file_put_contents
にFILE_APPEND
を指定して追記モードにする
バッチ処理を実務で使う際に、やっておくべきポイント
- エラー処理:例外をキャッチしてログに残すと調査に役立ちます。
- ログ出力:標準出力だけでなくファイルにも保存すると管理しやすいです。
- 環境変数の利用:DB接続情報やパスワードはコードに直書きせず
.env
に分離
まとめ
本記事では、PHPでのバッチファイル作成方法について解説しました。
- バッチ処理とは? → 定期的なデータ更新やログ集計などを自動で行う仕組み
- PHPでの実装手順 → CLI実行、Windowsの .bat、Linuxの cron によるスケジューリング
- 実例コード → データベース更新やログ保存のバッチ処理
- 安定運用のコツ → エラー処理、ログ出力、環境変数の活用
PHPはWeb開発だけでなく、バッチ処理でも活用できる柔軟な言語です。こうしたスキルは 実務で評価されやすく、転職活動においても「即戦力」として大きなアピールポイント になります。
おすすめの転職サイトをまとめた記事を作ってみましたので、こちらもぜひ参考にしていただけたらと思います。

コメント