我想用php做一些简单的替换。
首次出现“xampp”时,将其替换为“xp”。
对于“xampp”的第二次/最后一次出现,将其替换为“rrrr”
$test = "http://localhost/xampp/splash/xampp/.php";
echo $test."<br>";
$count = 0;
$test = str_replace ("xampp","xp",$test,$count);
echo $test."<br>";
$count = 1;
$test = str_replace ("xampp","rrrr",$test,$count);
echo $test;
查看文档后,我发现$ count是返回字符串匹配的位置。它不会通过指定的特定事件替换字符串。那么有什么方法可以完成这项任务吗?
答案 0 :(得分:1)
您可以使用preg_replace_callback
执行此操作,但如果替换不一定是连续的,则strpos
应该更有效。
function replaceOccurrence($subject, $find, $replace, $index) {
$index = 0;
for($i = 0; $i <= $index; $i++) {
$index = strpos($subject, $find, $index);
if($index === false) {
return $subject;
}
}
return substr($subject, 0, $index) . $replace . substr($subject, $index + strlen($find));
}