PHP では、Strtr、strreplace、およびその他の関数を置換に使用できることは誰もが知っていますが、それらは毎回すべてを置換します。
「abcabbc」、上記の関数を使用してこの文字列内の b を置き換えると、すべてが置き換えられますが、1 つまたは 2 つだけを置き換えたい場合は、以下の解決策を参照してください。
これはかなり興味深い質問です。私は以前に同様の処理を行ったことがあり、そのときは preg_replace を直接使用して実装しました。
mixed preg_replace ( 混合パターン、混合置換、混合主語 [, int 制限] )
件名で一致するパターンを検索し、それを置換に置き換えます。 limit が指定されている場合は、limit の一致のみが置き換えられます。limit が省略されている場合、または値が -1 の場合は、すべての一致が置き換えられます。
preg_replace の 4 番目のパラメーターは置換の数を制限できるため、この方法でこの問題に対処すると非常に便利です。しかし、php.net で str_replace に関する関数のコメントを確認すると、実際に代表的な関数をいくつかピックアップすることができます。
方法 1: str_replace_once
アイデアまず、置換するキーワードの位置を見つけて、substr_replace 関数を使用して直接置換します。
リーリー
方法 2、str_replace_limit
アイデアは依然として preg_replace を使用していますが、そのパラメーターは preg_replace に似ており、一部の特殊文字がエスケープされ、より汎用性が高くなります。
リーリー