基本页面:
<?php
/* page options here */
require_once('init.php');
?>
<head>
<script>
document.addEventListener("DOMContentLoaded", function() {
/* do stuff here */
});
</script>
</head>
<body>
<content>
<h1>Stuff</h1>
<p>even more stuff</p>
<?php echo('aaaaaaaaaaaaaa'); ?>
</content>
</body>
基本模板:
<!DOCTYPE html>
<html>
<head>
<?php echo $thing; ?>
<!-- lots of header tags here whatever -->
<!-- contents of <head> -->
</head>
<body>
<div class=container>
<!-- contents of <content> -->
</div>
</body>
</html>
我试图使用&#34;基本页面&#34;中的语法创建基本的模板引擎。上面,我现在让它与eval()
一起工作,应该避免。
它将解析整个文件,提取<head>
和<content>
的内容(或者如果我没有使用具有容器div的特定页面类型)
<head>
的内容将附加到基本模板中的<head>
(见上文)<content>
的内容将放在容器div内(见上文)现在,我使用它将内容放在应有的位置,并包含基本模板的文件:
function evil($content) {
eval(' ?>'.$content.'<?php ');
}
这样的事情:
<!DOCTYPE html>
<html>
<head>
<?php echo $thing; ?>
<!-- lots of header tags here whatever -->
<?php evil($page_head); ?>
</head>
<body>
<div class=container>
<?php evil($page_content); ?>
</div>
</body>
</html>
现在,我想这样做,不使用eval()
,这可能吗?