我正在使用文件page.php作为多个内容文件的HTML容器;即,page.php定义了页面的大部分通用结构,而内容文件只包含每个页面都独有的文本。我想要做的是包括一些PHP代码,每个内容文件都为页面定义元数据,例如标题,使用的横幅图形等。例如,内容文件可能如下所示(简化版):在包含()之前使用变量
<?php $page_title="My Title"; ?>
<h1>Hello world!</h1>
的文件的名字将被作为URL参数page.php文件,它看起来像这样被传递:
<html>
<head>
<title><?php echo $page_title; ?></title>
</head>
<body>
<?php include($_GET['page']); ?>
</body>
</html>
这种方法的问题是,它是使用后的变量被定义,这当然不起作用。输出缓冲也似乎没有帮助。
有没有其他方法可以使用?我不想将内容文件中的文本定义为PHP heredoc块,因为这会在我的文本编辑器中突出显示HTML语法。我也不希望在事后使用JavaScript来重写页面元素,因为这些页面中的很多不会使用JavaScript,如果不需要,我宁愿不将它作为依赖项引入。
为什么ob_ *函数不适合你?当你尝试时会发生什么? – webbiedave 2010-05-14 17:30:32
ob_ *函数可以工作,但它们不会改变页面的布局方式 - $ page_title在定义之前仍然没有值(这应该是我想的)。 – phenry 2010-05-14 17:36:24