我有一个函数,它使用preg_replace()
其中模式和替换是数组。我需要一个计数器来跟踪替换,所以我将函数转换为使用preg_replace_callback
和闭包,但我似乎无法找到一种方法来区分传递到回调匹配的匹配模式。有没有办法使用preg_replace_callback做array =>数组替换?preg_replace_callback数组模式和替换
理想的情况下,这是想我的工作,但显然它不会因为$模式,$替代评估进入呼叫,并且其间没有每次更换
function replaceTags($text)
{
$i = 1;
$pattern = array(
'/\[d\](.*?)\[\/d\]/',
'/\[s\](.*?)\[\/s\]/',
);
$replace = array(
'<div id="'.($i++).'">$1</div>',
'<span id="'.($i++).'">$1</span>',
);
return preg_replace($pattern, $replace, $text);
}
['preg_replace'](http://us2.php.net/manual/en/function.preg-replace.php)已经支持array - >数组替换。它不符合你的需求吗? – 2012-07-18 01:45:15
我需要一个更换柜台用于更换本身,所以preg_replace不会工作 – flurry 2012-07-18 01:47:56
您可以采取简单的方法,并单独计数和替换。 – 2012-07-18 01:49:55