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

PHP で部分文字列の最初 (または最後) のみを置換するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-17 12:17:24263ブラウズ

How Can I Replace Only the First (or Last) Occurrence of a Substring in PHP?

最初の出現のみを 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 サイトの他の関連記事を参照してください。

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