1

我想为 HTML 字符串做一个 str_replace,每次找到一个匹配项,值也会增加。

$link = 1;

$html = str_replace($this->link, $link, $html);

这将一次性替换所有内容,并且使用相同的字符串 $link,我希望每次找到匹配项时 $link 都会增加。是否可以?

非常感谢

4

2 回答 2

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]
?>
于 2012-04-29T05:09:00.640 回答
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 );
于 2012-04-29T05:16:05.760 回答