Php 如何用另一个文件中的值替换变量
我试图替换变量的值 我有以下文件 demo.htmlPhp 如何用另一个文件中的值替换变量,php,Php,我试图替换变量的值 我有以下文件 demo.html <h1>{$heading}</h1> <p>{$paragraph}</p> 在这里,我试图包括该文件并替换$heading和$paragration的值,而不是echo 我的问题是如何做到这一点?使用 将demo.html更改为demo.tpl.php $html = file_get_contents('email.html', true); eval($html);
<h1>{$heading}</h1>
<p>{$paragraph}</p>
在这里,我试图包括该文件并替换$heading
和$paragration
的值,而不是echo
我的问题是如何做到这一点?使用
将demo.html更改为demo.tpl.php
$html = file_get_contents('email.html', true);
eval($html);
在demo.php中,只需执行以下操作:
$heading = 'Heading';
$paragraph = 'Para';
include 'demo.tpl.php';
这应该行得通
或者,如果无法更改名称,请在demo.php中执行以下操作:
$heading = 'Heading';
$paragraph = 'Para';
print str_replace(
array('{$heading}','{$paragraph}'), # use ' not " here!!!
array($heading,$paragraph),
file_get_contents('demo.html'));
应该也可以。首先,此代码不需要使用eval()
,因为它不包含需要执行的PHPeval()
是一种非常危险的功能。
内容以字符串形式存在于$html
中,因此,现在可以使用一个更安全的函数来查找,并用正确的数据替换值占位符
该函数使用以下参数:str\u replace($search,$replace,$subject)
,接受数组作为参数,并返回带替换值的完整字符串
因此,要回答您的问题:
// $html = ...
$search = array(
'{$heading}',
'{$paragraph}'
);
$replace = array(
'My Heading',
'My Paragraph',
);
$replaced_string = str_replace($search, $replace, $html)
因为听起来像邪恶,所以很危险?如果操作正确,则可以计算代码中的变量;)但就像goto一样,每个人都避免使用它。如果您不在保存编码的条件下使用PHP,那么PHP是非常危险的。然而,对于一个琐碎的任务,使用eval是危险的,因为它打开了一个没有经验的开发人员可能不知道的漏洞。虽然它可以是
eval()
'd,但有一个替代选项可以做同样的事情,而且更安全:)
// $html = ...
$search = array(
'{$heading}',
'{$paragraph}'
);
$replace = array(
'My Heading',
'My Paragraph',
);
$replaced_string = str_replace($search, $replace, $html)