我需要搜索某些內容並用HTML包含某些單詞。要搜索的單詞在數組中,我只想替換每組匹配中的第二個到最後一個匹配項。因此,舉個例子,如果有5場比賽,我想替換第4場比賽。如果有3場比賽,請更換第2場。如果有2個匹配,則替換第二個/最後一個匹配,如果只有一個匹配,則使用該匹配。需要計數匹配並使用preg_replace_callback替換「第n個」匹配
回調函數在使用回調函數的外部。
我想我需要一個數組 - 減一 - 然後將該數字傳遞給回調函數並在那裏使用它,但也許有更簡單的方法來做到這一點?
簡化的功能是:
function repWords($content) {
foreach ($words_array as $w) {
$content = preg_replace_callback('/\b('.$w.'[s]?)\b/S', array(&$this,'addHtml'), $content);
}
return $content;
}
function addHtml($format){
return '<span>' . $format[1] . '</span>'
}
根據需要更換它找到的話,我可以將它設置爲隨機替換一些這樣的作品,但我想要麼更換第n個發生和/或僅替換一個發生(並不總是第一次出現)。
最後一段引發我的興趣,似乎沒有與你以前的陳述jive。你可以給一個實際的「之前」和「之後」的例子? –
所以你不希望這個方法是正確的:在數組中找到所有匹配的單詞,將'count-1'傳遞給回調函數? – mesutozer
也,你使用什麼版本的PHP –