如何用另一个文件中的值替换变量


How to replace variable with values in another file

我正在尝试替换变量

的值

我有以下文件

替换

<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'));