$ string ='在那儿帮助。霍曼生活在地球上。霍曼爱猫。'
现在,我想用 Human 代替第二霍曼单词,结果应如下:
在那里。霍曼生活在地球上。人类喜欢猫。
这是我到目前为止所做的...:
<?php
$string = 'Hellow there. Hooman lives on earth. Hooman loves cats.';
echo preg_replace('/Hooman/', 'Human', $string, 2);
?>
但是它返回:在那里。人类生活在地球上。人类喜欢猫。
答案 0 :(得分:1)
您可以使用preg_replace
function str_replace_n($search, $replace, $subject, $occurrence)
{
$search = preg_quote($search);
return preg_replace("/^((?:(?:.*?$search){".--$occurrence."}.*?))$search/", "$1$replace", $subject);
}
echo str_replace_n('Hooman','Human',$string, 2);
答案 1 :(得分:1)
此代码假定字符串中至少有一个Hooman。
找到Hoomans位置并将其子字符串化,然后在字符串的第二部分进行替换。
$find = "Hooman";
$str = 'Hellow there. Hooman lives on earth. Hooman loves cats.';
$pos = strpos($str, $find);
echo substr($str, 0, $pos+strlen($find)) . str_replace($find, "Human", substr($str, $pos+strlen($find)));