2012-10-09 49 views
0

我正在尋找讓我的頁面從外部模板頁面搜索頁面佈局的方法。請看下面的例子。如何配置頁面以搜索外部佈局代碼?

<head> 
<title></title> 
</head> 
<body> 


<search for header, css, layout, etc from external page> 

Page contents 

<search for footer> 


</body> 

是否有任何方式使用PHP或HTML做到這一點?我希望能夠編輯所有頁面的佈局,而無需一頁接一頁地完成。只要它適用於所有瀏覽器,我都歡迎任何其他方式達到相同的效果。

非常感謝!

回答

0

像安德魯說的那樣,使用include s。我將設置兩個基本示例。


最簡單的,必須由您的主文件(S)稱爲多佈局文件:

的header.php:

<div id="header"> 
    Menu can go here. 
    <?php echo 'I make all my files .php, so they can use PHP functions if needed.'; ?> 
</div> 

footer.php

<div id="footer"> 
    <a href="#">Footer Link</a> 
</div> 

index.php

<html> 
    <head></head> 
    <body> 
     <?php include('/path/to/header.php'); ?> 
     Specific index.php content here. 
     <?php include('/path/to/footer.php'); ?> 
    </body> 
</html> 

另一種選擇是讓一個PHP文件包含所有不同的佈局元素。我喜歡這個的原因是因爲你可以包含一個文件,然後爲不同的部分調用特定的函數。這也可以用來傳遞像頁面標題這樣的變量。

layout.php中

<?php 
function makeHeader($title) { 
    return 'My title is: '.$title; 
} 

function makeFooter() { 
    $html = ' 
     <div id="footer"> 
      <a href="#">Footer Link</a> 
     </div> 
    '; 
    return $html; 
} 
?> 

的index.php

<?php include('/path/to/include.php'); ?> 
<html> 
    <head></head> 
    <body> 
     <?php echo makeHeader('Page Title'); ?> 
     Specific index.php content here. 
     <?php echo makeFooter(); ?> 
    </body> 
</html> 

只要確保你使用相對路徑(no http://www.)包含文件時。這將允許變量和函數順利地轉換。最簡單的方法是使用PHP變量$_SERVER['DOCUMENT_ROOT'],所以如果你有一個文件http://mysite.com/includes/layout.php,你可以將它包含在include($_SERVER['DOCUMENT_ROOT'].'/includes/layout.php')中,不管你包含的文件位於何處。

1

這正是PHP的用途。 PHP腳本可以使用include語句包含另一個腳本的內容。

因此,您的應用程序中的每個頁面都可能有一個關聯的PHP腳本來生成內容,並且包含頁腳佈局的footer.php。這樣,當您更改footer.php時,所有使用它的頁面將自動獲取更改。

你不能用純HTML做這個,儘管你可以用一些javascript和Ajax。