2012-01-19 49 views
2

$end = preg_replace($pattern, $replacement, $str);PHP動態的preg_replace

我怎樣才能讓替換字符串$替換在$ STR每場比賽有什麼不同?例如,我想用相關圖像替換每個匹配的字符串。關於回調的東西......對吧?

回答

3

是的,有回調的東西。特別是preg_replace_callback,這使重複的呼叫成爲冗餘。對於事情的清單,以取代:

$src = preg_replace_callback('/(thing1|thing2|thing3)/', 'cb_vars', $src); 

凡回調可以做一些形式的查找或轉換:

function cb_vars($m) { 
    return strtoupper($m[1]); 
} 

同樣,你可以做到這一點內嵌在正常preg_replace/e修改。

+0

是的!太棒了,我在閱讀php文檔時遇到了麻煩。感謝您拼寫出來... – emc

3

您需要在模式字符串中使用preg_replace_callback/e修飾符。第一個更強大,但第二個更方便,如果你只是在相對簡單的事情之後。