我有一個函數,它使用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