我在 php 中有这段代码-:
function pregRepler($matches)
{
* do something
}
$str = preg_replace_callback($reg_exp,'pregRepler',$str);
在功能中pregRepler
,我想知道当前match number
是第一个匹配还是第二个匹配或其他什么...
我该怎么做。??
我在 php 中有这段代码-:
function pregRepler($matches)
{
* do something
}
$str = preg_replace_callback($reg_exp,'pregRepler',$str);
在功能中pregRepler
,我想知道当前match number
是第一个匹配还是第二个匹配或其他什么...
我该怎么做。??
您需要$count
在两个变量范围之间共享一个变量,例如使用变量别名:
$callback = function($matches) use (&$count) {
$count++;
return sprintf("<%d:%s>", $count, $matches[0]);
};
echo preg_replace_callback($pattern, $callback , $subject, $limit = -1, $count);
在调用之前,$count
等于 0。在调用之后$count
设置为完成的替换次数。在这两者之间,您可以在回调中计数。您也可以在下次调用时再次设置为零。
$repled = 0;
function pregRepler($matches)
{
* do something
global $repled;
$repled++;
}
$str = preg_replace_callback($reg_exp,'pregRepler',$str);
只需从全局变量中计数。