我想为 HTML 字符串做一个 str_replace,每次找到一个匹配项,值也会增加。
$link = 1;
$html = str_replace($this->link, $link, $html);
这将一次性替换所有内容,并且使用相同的字符串 $link,我希望每次找到匹配项时 $link 都会增加。是否可以?
非常感谢
我想为 HTML 字符串做一个 str_replace,每次找到一个匹配项,值也会增加。
$link = 1;
$html = str_replace($this->link, $link, $html);
这将一次性替换所有内容,并且使用相同的字符串 $link,我希望每次找到匹配项时 $link 都会增加。是否可以?
非常感谢
您可以使用正则表达式来返回它做了多少替换。
<?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]
?>
如果我对您的理解正确(您希望将每个匹配替换为不断增长的整数),那么关于鼓励您使用的问题的评论似乎preg_replace_callback
是正确的:
$str = 'Hello World';
$cnt = 0;
function myCallback ( $matches ) {
global $cnt;
return ++$cnt;
}
// He12o Wor3d
echo preg_replace_callback( '/\l/', 'myCallback', $str );