如何在 PHP 中只替换子字符串的第一次出现?(针对第一个匹配项的 str_replace)
大家好!我写 PHP 时遇到了一个意想不到的问题。我有一个字符串,需要只替换其中某个子字符串的第一次出现,而保持其余部分不变。
举个例子。假设我有 HTML 代码或纯文本:
```php
$text = "Яблоко, банан, яблоко, апельсин, яблоко";
$search = "яблоко";
$replace = "груша";
```
我希望结果是:"Яблоко, банан, груша, апельсин, яблоко" —— 即只替换第二次出现(不区分大小写的第一次,但这不重要)。或者,如果我想替换真正的第一次出现,得到 "груша, банан, яблоко, апельсин, яблоко"。
问题在于标准函数 `str_replace()` 会替换所有出现。我试过 `str_replace($search, $replace, $text)`,但它把每个 "яблоко" 都替换成了 "груша",而我只需要替换一个。我知道有 `preg_replace()`,但也许有更简单的不用正则表达式的解决方案?或者如何正确使用 `preg_replace()` 并限制替换次数?