PHPでファイル内の文字列を置換する方法

こんにちは、さるまりんです。

とあるファイルの中の文字列をファイル名を変えずに別の文字列に置き換える方法です。

こんなプログラムで実現できます。

// ファイル名
$fileName = 'some-text-file.txt';

// 置換する文字列の配列 (変更前ー>変更後)
$replaces = [
  '変更前a' => '変更後a',
  '変更前b' => '変更後b',
];

// ファイルをバファに読み込みます。
$buff = file_get_contents($fileName);
// $replacesに従って、読み込まれた文字列を置換
$buff = strtr($buff, $replaces);
// 同じファイル名で結果を書き出す
file_put_contents($fileName, $buff);

簡単でした〜。

ただファイルがあまりに大きいと読み込みきれないかもしれないです。

その場合は一行ずつ読んで、置換して別のファイルに書き出し、最後にファイル名を変更するようなプログラムが必要かもしれないです。

読んでくださってありがとうございます。

それではまた!