我有这个功能从模板文件夹中调用带有.html扩展名的模板,因为我想将html与php分开
好的,这是我调用模板的功能
class Template {
public $temp;
// function for reading the template from a directory
function gettemplate($template) {
// check if path is folder
if (is_dir('templates/')) {
// check if file exists and if is readable
if (is_readable('templates/' . $template . '.html')) {
$this->temp = 'templates/' . $template . '.html';
return $this->temp;
} else {
return false;
}
} else {
return false;
}
}
此类调用模板文件夹中的模板
现在我需要的是制作示例profile.html和profile.php
profile.html中的只需输入名字:<?php echo $first_name; ?>
并在profile.php中定义varibales 这是profile.php
if (isset($_GET['id']) && !empty($_GET['id']) && is_numeric($_GET['id'])) {
$id = $filters->validate_url($_GET['id']);
$data = $users->userdata($id);
$id = $data['user_id'];
$first_name = $data['first_name'];
$last_name = $data['last_name'];
$username = $data['username'];
$email = $data['email'];
$country = $data['country'];
$date = $data['date'];
include ( $template->gettemplate('profile') );
这里是profile.html
<ul>
<li>First name : <?php echo $first_name; ?></li>
<li>Last name : <?php echo $last_name; ?></li>
<li>Username : <?php echo $username; ?></li>
<li>Email : <?php echo $email; ?></li>
<li>Country : <?php echo $country; ?></li>
<li>Member since : <?php echo $date; ?></li>
现在我的问题是我如何使用
使类调用模板文件$template->gettemplate('profile');
而不是include ($template->gettemplate('profile'));
并在html文件中显示来自php文件的变量
答案 0 :(得分:0)
使用extract()
函数“在html文件中显示来自php文件的变量”。它将创建一个局部变量,其中包含数组键的名称和数组值的值
$data = $users->userdata($id);
extract($data, EXTR_SKIP);
include $template->gettemplate('profile');
$template->gettemplate('profile');
我不相信有办法绕过include
。您可以将include
放在gettemplate
中并传递数据数组。网上有几个非常好的模板引擎。我建议看几个。我建议看看
Mustache