[发送到str_replace PHP时修改数组键

问题描述 投票:0回答:1

我正在尝试在项目中使用html模板,到目前为止,它一直在工作,但是为了使模板更易于使用,我想使用{}来表示字段区域。像这样:

//tplCall.html
<div id="{CustID}">
    <div class="callname">{Name}</div>
    <div class="calladdress">{Address}</div>
</div>

以下功能正常:

$tmpCall = file_get_contents("templates/tplCall.html");
$tmpdata = get_object_vars($thiscall);
$htmlout = str_replace(array_keys($tmpdata),array_values($tmpdata),$tmpCall);
echo $htmlout;

但显然{}完好无损。我想做类似下面的事情,但是我得到一个数组字符串错误。如何在将{}发送到str_replace之前将其添加到密钥部分?

$tmpCall = file_get_contents("templates/tplCall.html");
$tmpdata = get_object_vars($thiscall);
$htmlout = str_replace("{" . array_keys($tmpdata) . "}",array_values($tmpdata),$tmpCall);
echo $htmlout;
php arrays str-replace
1个回答
0
投票

[显式修改array_keys($tmpdata)的每个元素:

$keys = array_map(function($v) { return '{' . $v . '}'; }, array_keys($tmpdata));
$htmlout = str_replace($keys, array_values($tmpdata), $tmpCall);
© www.soinside.com 2019 - 2024. All rights reserved.