<?php
$haystack = 'abdabc';
$needle = 'c';
$replace = 'z';
$limit = 2;
function str_replace_limit($haystack, $needle, $replace, $limit, $start_pos = 0) {
if ($limit < 1 || ($pos = strpos($haystack,$needle,$start_pos)) === false) {
return $haystack;
} else {
return str_replace_limit(
substr_replace($haystack, $replace, $pos, strlen($needle)),
$needle,
$replace,
$limit - 1,
$pos + strlen($replace)
);
}
}
echo str_replace_limit($haystack, $needle, $replace, $limit);
- Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
- abdabz
preferences:
1168.23 ms | 407 KiB | 5 Q