我有这段代码:
<div>{phrase var="web_user" {0}="Try } Symbole" {1}="\"No\""}</div><div>{phrase var="web_admin" {0}="another" {1}="Is not any1."}</div>
我希望将{phrase}
替换为函数translate
的结果。 translate
函数的调用需要与{\d}
参数一起使用。
例如代码:
echo '<div>{phrase var="web_user" {0}="Try } Symbole" {1}="\"No\""}</div>';
应该是:
echo '<div>'.translate("web_user", [0 => "Try } Symbole", 1=>"\"No\""]).'</div>';
我尝试使用preg_replace_callback
但没有成功。
我的代码:
$code = preg_replace_callback(
'/\{phrase\s+(.*)\}/iU',
function($phrase_data) {
preg_match_all('/([a-zA-Z0-9\_]+)\\s*=\s*"([^\"])"/iU',$phrase_data[0], $parameters);
call_user_func_array('translate', $parameters);
},
$code
);
谢谢。