我有一个字符串,可以有简单的模板。我有一个数组,其中包含replacemenet的值。目前我正在使用循环。但我想将其更改为preg_replace。你能救我吗?
示例:
$values = array(
'id' => 120,
'name' => 'Jim'
);
$string = 'Hello <!name!>. Your ID is <!id!>';
$output = preg_replace(...); // Hello Jim. Your ID is 120
preg_replace不仅应该使用id和name,还可以使用任何其他键。感谢。
答案 0 :(得分:2)
如下所示?
<?php
$values = array(
'id' => 120,
'name' => 'Jim'
);
$string = 'Hello <!name!>. Your ID is <!id!>';
function foo($val) {
return '/<!' . $val . '!>/';
}
echo preg_replace(array_map('foo', array_keys($values)), array_values($values), $string);
如果整个事情都在课堂上:
class Template {
static function bar($val) {
return '/<!' . $val . '!>/';
}
function render($values, $string) {
echo preg_replace(array_map(array('Template', 'bar'), array_keys($values)), array_values($values), $string);
}
}
$values = array(
'id' => 120,
'name' => 'Jim'
);
$string = 'Hello <!name!>. Your ID is <!id!>';
$T = new Template();
$T->render($values, $string);