我有一个使用该结构的模板文件 [名字] [LASTNAME]
等等......我将进行搜索并替换它。我想做的一件事是,当模板被送回时,如果我没有规定,[FIRSTNAME] ....它仍然显示在模板中...我想让它为NULL如果我没有没有规定该变量的任何数据。在我的代码中我正在使用FILE_GET_CONTENTS
$q = file_get_contents($filename);
foreach ($this->dataArray as $key => $value)
{
$q = str_replace('['.$key.']', $value, $q);
}
return $q;
因此,一旦该循环过度填充了正确的数据,我需要进行另一次搜索并替换使用的任何变量,[FIRSTNAME]
我希望任何人都可以指引我朝着正确的方向前进。
干杯
答案 0 :(得分:3)
听起来你只想添加一行:
$q = preg_replace('/\[[^\]]*\]/', '' , $q);
在完成所有已定义的替换后,删除任何剩余的方括号字。
如果你想简明扼要,可以用http://www.webmasterworld.com/php/3444822.htm的“一线模板引擎”替换整个函数,用方括号代替curlies。
答案 1 :(得分:2)
您实际上可以将数组作为参数传递给str_replace函数。
$keys = array(
'FIRSTNAME',
'LASTNAME'
):
$replacements = array(
'George',
'Smith'
);
str_replace($keys, $replacements, $input);
如果您要删除名字,如果它的空白,为什么不将它添加到key =>值为''
的替换数组?
$this->dataArray['FIRSTNAME'] = '';
或类似
if (!isset($this->dataArray['FIRSTNAME'])) {
$this->dataArray['FIRSTNAME'] = '';
}