web-dev-qa-db-ja.com

ファイルを検索して置換する

テキストファイルで特定の文字列を別の文字列に置き換えたい(例:\nH,H)。 PHPを使用する方法はありますか?

22
ArK

file_get_contents() を使用してファイル全体を読み取り、 str_replace() を実行して、それを file_put_contents() を使用して出力できます。

サンプルコード:

<?php

$path_to_file = 'path/to/the/file';
$file_contents = file_get_contents($path_to_file);
$file_contents = str_replace("\nH",",H",$file_contents);
file_put_contents($path_to_file,$file_contents);

?>
49
Josh

ファイルを読み書きする関数 がいくつかあります。

ファイルの内容は file_get_contentsstr_replace そして、変更されたデータを file_put_contents

file_put_contents($file, str_replace("\nH", "H", file_get_contents($file)));
13
Gumbo

Unixマシンを使用している場合は、phpの プログラム実行関数 を介して sed を使用することもできます。

したがって、phpを介してファイルのすべてのコンテンツをパイプする必要はなく、正規表現を使用できます。より速くなる可能性があります。

マンページを読みたくない場合は、 Wikipedia で概要を確認できます。

9
middus

file_get_contents()次にstr_replace()に変更した文字列をfile_put_contents()で戻します(Joshが言ったことのかなりの部分)

1
Mikey