我正在爲朋友設計一個相對簡單的網站。我想impliment PHP,以便他可以改變他的頁眉/頁腳,而不必回頭查看每個文件。問題是,我幾乎完全不熟悉php的工作原理。有沒有簡單的方法來做到這一點?我已經看到了一些關於如何製作php頭文件的答案,但它們看起來都不一樣,我也沒有取得太大的成功。我不是說他們不工作(我可能做錯了),但在這種情況下更簡單,越好。創建PHP頁眉/頁腳
謝謝!
我正在爲朋友設計一個相對簡單的網站。我想impliment PHP,以便他可以改變他的頁眉/頁腳,而不必回頭查看每個文件。問題是,我幾乎完全不熟悉php的工作原理。有沒有簡單的方法來做到這一點?我已經看到了一些關於如何製作php頭文件的答案,但它們看起來都不一樣,我也沒有取得太大的成功。我不是說他們不工作(我可能做錯了),但在這種情況下更簡單,越好。創建PHP頁眉/頁腳
謝謝!
只需創建header.php文件,並在你想用它做的事:
<?php
include('header.php');
?>
同樣的,頁腳。如果你只有html,你不需要這些文件中的php標籤。
查看更多有關包括在這裏:
您可以在PHP中使用include_once()
功能做到這一點。以header.php
的名義構建標題部分並構建頁腳部分footer.php
。最後將所有內容包含在一個文件中。
例如:
的header.php
<html>
<title>
<link href="sample.css">
footer.php
</html>
所以最終的文件看起來像
include_once("header.php")
body content(The body content changes based on the file dynamically)
include_once("footer.php")
而且只用include()
或include_once()
包括頁眉和頁腳,我發現有用的一件事是能夠爲每個頁面包含一個自定義頁面標題或自定義標題標籤,但仍包含部分包含的標題。我通常做到這一點,如下所示:
在網站頁面:
<?php
$PageTitle="New Page Title";
function customPageHeader(){?>
<!--Arbitrary HTML Tags-->
<?php }
include_once('header.php');
//body contents go here
include_once('footer.php');
?>
而且,在header.php文件:
<!doctype html>
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<title><?= isset($PageTitle) ? $PageTitle : "Default Title"?></title>
<!-- Additional tags here -->
<?php if (function_exists('customPageHeader')){
customPageHeader();
}?>
</head>
<body>
也許有點出乎你原來的問題的範圍,但是爲include提供更多的靈活性是有用的。
越簡單越好。
的index.php
<?
if (empty($_SERVER['QUERY_STRING'])) {
$name="index";
} else {
$name=basename($_SERVER['QUERY_STRING']);
}
$file="txt/".$name.".htm";
if (is_readable($file)) {
include 'header.php';
readfile($file);
} else {
header("HTTP/1.0 404 Not Found");
exit;
}
?>
的header.php存儲在txt
文件夾中的page
<a href="index.php">Main page</a><br>
<a href=?about>About</a><br>
<a href=?links>Links</a><br>
<br><br>
實際靜態的HTML頁面。HTM格式
這是一個有趣的方法!你會用htaccess重寫,還是更簡單www.somesite.com/?about你還可以在txt文件夾中有一個目錄結構,還是基本名稱可以消除? – Ben
是的,我更喜歡與mod_rewrite一起使用類似的方法,我甚至有一些我相信的代碼。如果沒有mod_rewrite,你必須使用'?page'方式來啓動。 –
您可以用這個標題: 重要:放在要包含內容的PHP頁以下。
<?php
//at top:
require('header.php');
?>
<?php
// at bottom:
require('footer.php');
?>
還可以包括導航欄globaly只是用這個代替:
<?php
// At top:
require('header.php');
?>
<?php
// At bottom:
require('footer.php');
?>
<?php
//Wherever navbar goes:
require('navbar.php');
?>
在header.php中:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
</head>
<body>
不要靠近身體或HTML標籤!
包含HTML瀏覽:
<?php
//Or more global php here:
?>
Footer.php:
代碼在這裏:
<?php
//code
?>
Navbar.php:
<p> Include html code here</p>
<?php
//Include Navbar PHP code here
?>
下面的答案應該會對你有所幫助,但是像smarty或者twig這樣的模板引擎可以在將來出現更大規模的麻煩時從這些混亂中拯救你很多......它有一個相對簡單的學習曲線,大量的HTML和一些變量... – optimusprime619