.txt ファイルがあり、部分文字列が最初に出現した後のすべてを新しい文字列に置き換えたいと考えています。
たとえば、.txt ファイルに次のものが含まれているとします。
チョコレートパイが好きなピーターです。外は晴れています。
世界の「チョコレート」の後のすべてを「バー」に置き換えたいので、最終結果は次のようになります。
これはピーターで、彼はチョコレートバーが好きです
これを行う最善の方法は何ですか?
preg_replace
呼び出しが機能します。
$subject = "This is Peter and he likes chocolate pies. It's sunny outside.";
$regex = "#(chocolate).+$#";
$out = preg_replace($regex,"$1 bars.",$subject);
必要に応じて、検索パターンと置換パターンの単語を変数に置き換えることができます。
strpos と substr を組み合わせて使用して、端を切り落とします。
$str = 'This is Peter and he likes chocolate pies. It\'s sunny outside.';
$find = 'pies';
$replace = 'bars';
$str = substr($str, 0, strpos($str, $find)) . $replace;