我正在使用文件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