我想通過這樣的DIV文本替換類修改:
此:<div class="grid-flags" >FOO</div>
用正則表達式替換後向引用通過功能
變爲:<div class="iconFoo" ></div>
因此類變更爲「圖標」。 ucfirst(用strtolower(FOO))和文本被去除
測試HTML
<div class="grid-flags" >FOO</div>
模式
'/class=\"grid-flags\" \>(FOO|BAR|BAZ)/e'
代用
'class="icon'.ucfirst(strtolower($1).'"'
這是一個替換字符串的一個例子我已經嘗試過數百個表面。我讀過/ e修飾符評估PHP代碼,但我不明白它是如何工作的,因爲我需要圍繞類名稱的雙引號,所以我迷失方向去做這件事。
我嘗試了變化的backref例如。 strtolower('1'),strtolower('\ 1'),strtolower('{$ 1}')
我試過單引號和雙引號以及各種轉義等,沒有任何工作。
我甚至嘗試preg_replace_callback(),沒有運氣
function callback($matches){
return 'class="icon"'.ucfirst(strtolower($matches[0])).'"';
}
謝謝大家週末的答案。這是我嘗試做的最簡單的方法,也是最簡潔的方式,所以我將其作爲公認的答案,但你們都提出了很多要點。 – Jesse 2010-02-22 15:06:04