我正在尝试替换变量
的值我有以下文件
替换
<h1>{$heading}</h1>
<p>{$paragraph}</p>
demo.php
$html = file_get_contents('email.html', true);
eval($html);
这里我试图包含该文件并替换$heading
和$paragraph
的值,然后返回。
首先,此代码不需要eval()
,因为它不包含需要执行的PHP。eval()
是一个非常危险的函数。您的内容在$html
中是一个字符串,因此,您现在可以使用一个称为str_replace()
的更安全的函数来查找,并用正确的数据替换值占位符。
函数使用以下参数:str_replace($search, $replace, $subject)
,接受数组作为参数,并返回带有替换值的完整字符串。
因此,回答你的问题:
// $html = ...
$search = array(
'{$heading}',
'{$paragraph}'
);
$replace = array(
'My Heading',
'My Paragraph',
);
$replaced_string = str_replace($search, $replace, $html)
使用str_replace.
$replace = array(
'{$heading}' => 'Replaced heading',
'{$paragraph}' => 'Replaced paragraph'
);
$html = file_get_contents('email.html', true);
$html = str_reaplce(array_keys($replace), array_values($replace), $html);
echo $html;
改变替换, demo.tpl.php
在demo.php中输入:
$heading = 'Heading';
$paragraph = 'Para';
include 'demo.tpl.php';
应该可以。
或者如果不能更改名称,在demo.php do:
$heading = 'Heading';
$paragraph = 'Para';
print str_replace(
array('{$heading}','{$paragraph}'), # use ' not " here!!!
array($heading,$paragraph),
file_get_contents('demo.html'));