仅用 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中文网其他相关文章!