str_replace を使用すると、最初の一致に対してのみ機能しますか? 質問する

str_replace を使用すると、最初の一致に対してのみ機能しますか? 質問する

内のstr_replace()の最初の出現のみを置き換えるのバージョンが必要です。これには簡単な解決策がありますか、それともハッキーな解決策が必要ですか?$search$subject

ベストアンサー1

それにはバージョンはありませんが、解決策はまったくハッキーではありません。

$pos = strpos($haystack, $needle);
if ($pos !== false) {
    $newstring = substr_replace($haystack, $replace, $pos, strlen($needle));
}

非常に簡単で、正規表現によるパフォーマンスの低下を回避できます。


ボーナス:最後の出現を置き換えたい場合は、strrposの代わりにを使用しますstrpos

おすすめ記事