我想为HTML字符串执行str_replace,每次查找匹配项时该值也会增加。
$link = 1;
$html = str_replace($this->link, $link, $html);
这将替换all in one,并且使用相同的字符串$ link,我希望每次找到匹配时$ link都会增加。有可能吗?
非常感谢
答案 0 :(得分:2)
您可以使用正则表达式返回它执行的替换次数。
<?php
$string = "red green green blue red";
preg_replace('/\b(green)\b/i', '[removed]', $string, -1 , $results);
echo $results; // returns '2' as it replaces green twice with [removed]
?>
答案 1 :(得分:1)
如果我理解正确(你希望每个匹配都用增长的整数替换),那么鼓励你使用preg_replace_callback
的问题上的评论似乎是正确的:
$str = 'Hello World';
$cnt = 0;
function myCallback ( $matches ) {
global $cnt;
return ++$cnt;
}
// He12o Wor3d
echo preg_replace_callback( '/\l/', 'myCallback', $str );