如何引用一个键 - >如果一个键是来自php中preg_replace中的正则表达式的值

时间:2014-06-26 15:49:29

标签: php regex

拥有这个数组:

$arr['id']=150;
$arr['contenido']="un proyecto";
$arr['foto']="una foto";

这非常好

$text = 'estamos en el registro {id} cuyo contenido es {contenido} por lo que veremos su {foto}';
$text = preg_replace('/{(.*?)}/', '$1', $text);
echo $text;

//print:
//estamos en el registro id cuyo contenido es contenido por lo que veremos su foto

我理解{和}所包含的值是1美元,但我需要替换与键匹配的数组值。我试着这个

$text2 ='estamos en el registro {id} cuyo contenido es {contenido} por lo que veremos su {foto}';

$text2 = preg_replace('/{(.*?)}/', $arr['$1'], $text2);
echo $text2;

//print
estamos en el registro  cuyo contenido es  por lo que veremos su 

但是{key}的pos中没有打印任何一个,我如何得到键y n {}引用的数组值。

1 个答案:

答案 0 :(得分:2)

preg_replace_callback(
    '/{(.*?)}/',
    function (array $m) use ($arr) { return $arr[$m[1]]; },
    $text2
)