最初の出現のみを str_replace で置き換える
置換を最初の出現に制限する組み込み str_replace 関数はありませんが、比較的複雑なハックに頼ることなく簡単な解決策が存在します。
達成するにはこれには、strpos 関数を使用して、メイン文字列内のサブ文字列の位置を特定します。特定したら、substr_replace を使用して元の文字列を変更し、部分文字列の出現位置と長さを指定します。このメソッドは、正規表現のオーバーヘッドを発生させずに、最初の出現箇所を効率的に置換します。
コード例:
$haystack = "This is a sample string"; $needle = "is"; $replace = "was"; $pos = strpos($haystack, $needle); if ($pos !== false) { $newstring = substr_replace($haystack, $replace, $pos, strlen($needle)); } echo $newstring; // Output: "This was a sample string"
ボーナス: 最後の出現箇所を置換するにはstrpos を strrpos:
$pos = strrpos($haystack, $needle); if ($pos !== false) { $newstring = substr_replace($haystack, $replace, $pos, strlen($needle)); }
以上がPHP で部分文字列の最初 (または最後) のみを置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。