ホームページ >バックエンド開発 >PHPチュートリアル >PHP で最初に出現した部分文字列のみを置換するにはどうすればよいですか?

PHP で最初に出現した部分文字列のみを置換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-13 12:42:14704ブラウズ

How Can I Replace Only the First Occurrence of a Substring in PHP?

最初の出現のみを str_replace で置換する

単一の出現を排他的に変更する str_replace() の組み込みバリアントはありません。ただし、複雑なアプローチに頼らずに洗練されたソリューションが存在します。

置換を最初の一致に制限するには、次の手順を使用します。

  1. strpos() を使用して、 $subject 文字列内の最初の $search 出現。
  2. 位置が false でない場合、出現があったことを意味します。
  3. substr_replace() を使用して新しい文字列 $newstring を作成します。この関数は、$needle の長さの間、指定された位置で置換を実行します。
$pos = strpos($haystack, $needle);
if ($pos !== false) {
    $newstring = substr_replace($haystack, $replace, $pos, strlen($needle));
}

このメソッドは非常に効率的であり、正規表現に関連する潜在的なパフォーマンス ヒットを回避します。

ボーナス:

最後に出現したものを置き換えるには、単純に置き換えます。上記のコードでは strpos() と strrpos() を組み合わせています。

以上がPHP で最初に出現した部分文字列のみを置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。