我想通过这样的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