我在PHP中有以下代码:
if ($maintenance_mode == true)
{
$file = 'maintenance-header.php';
$template = file_get_contents($t_includes_path . $file);
}
else
{
$file = 'main-header.php';
$template = file_get_contents($t_includes_path . $file);
}
require_once($s_system_path . 'templater.php');
然后在templater.php
:
$page = str_replace(array(
'{slang}',
'{site_title}',
'{site_desc}',
'{keywords}',
'{t_assets_path}',
'{s_assets_path}',
'{i_assets_path}',
), array(
$slang,
$site_title,
$site_content,
$keywords,
$t_assets_path,
$s_assets_path,
$i_assets_path,
),
$template);
echo $page;
问题在于,如果我尝试在模板文件本身中使用php
代码,则无法识别它并将其解析为注释/纯文本。例如:
if (htmlentities($_GET['lang'], ENT_QUOTES) == 'en')
{
echo 'English';
}
else if (htmlentities($_GET['lang'], ENT_QUOTES) == 'ru')
{
echo 'Russian';
}
else
{
echo 'Other';
}
如何处理?我真的想使用{site_title}
而不是<?php echo $site_title; ?>
等。我希望尽可能保持代码清洁。
答案 0 :(得分:0)
你必须exectue你的PHP代码。如果你只是'回显'它,你的字符串中的代码将不会被执行,只是打印在页面上。 例如,您可以使用eval()函数,但请确保用户无法强制您的Web eval()他们的代码..如文档中所述: