2010-11-24 61 views
1

我有一个可怕的问题。在我的字符串中有很多像{{SOME_WORDS}}这样的结构,我想将它改为$ lang ['some_word']。由于这个原因,我使用类似于:我preg_replace并只得到语句的最后一个字符。帮助

$cache=preg_replace('/({{)+([A-Z_])+(}})/u','$2',$cache); 

并且只获得了SOME_WORDS“S”的最后一个字符。接下来的问题是将$ lang [strtolower($ 2)]放入preg_replace第二个参数。或者可能有另一种解决方案?

回答

1

您需要将+放在圆括号内。像这样:

$cache=preg_replace('/({{)+([A-Z_]+)(}})/u','$2',$cache);

+0

ок,罚款,但如何把$ LANG [用strtolower($ 2)]到了preg_replace第二个参数? – powermic 2010-11-24 21:02:14

-1

试试这个:

$cache = preg_replace("/\{\{(\w+)\}\}/e", "strtolower($1)", $cache); 
+0

将字符串更改为小写字母,但将$ lang [strtolower($ 1)]仍然出错 – powermic 2010-11-24 21:18:36