Создание PHP-колонтитула - PullRequest
16 голосов
/ 08 ноября 2011

Я создаю относительно простой сайт для друга. Я хотел бы включить php, чтобы он мог изменить свой верхний / нижний колонтитул, не просматривая каждый файл. Проблема в том, что я не знаю, как работает php. Есть ли упрощенный способ сделать это? Я видел несколько ответов о том, как сделать php-заголовок, но все они кажутся разными, и я не добился большого успеха. Я не говорю, что они не работают (я, вероятно, сделал это неправильно), но чем проще в этом случае, тем лучше.

Спасибо!

Ответы [ 5 ]

37 голосов
/ 09 ноября 2011

Помимо простого использования 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>

Возможно, это немного выходит за рамки вашего исходного вопроса, но полезно включить немного больше гибкости с включением.

16 голосов
/ 08 ноября 2011

Просто создайте файл header.php и укажите, где вы хотите его использовать:

<?php
include('header.php');
?>

То же самое с нижним колонтитулом.Вам не нужны php теги в этих файлах, если у вас есть только html.

Подробнее о include здесь:

http://php.net/manual/en/function.include.php

3 голосов
/ 08 ноября 2011

Вы можете сделать это, используя функцию include_once() в php.Создайте часть заголовка с именем 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") 
2 голосов
/ 31 октября 2017

Вы можете использовать это для заголовка: Важное замечание: Добавьте на свои PHP страницы, которые вы хотите включить, в содержание.

<?php
//at top:
require('header.php'); 
 ?>
 <?php
// at bottom:
require('footer.php');
?>

Вы также можете включить глобализацию navbar, просто используйте это вместо:

 <?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> 

Не закрывать теги 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

?>

ПРЕИМУЩЕСТВА:

  • Очиститель основного php-файла (index.php).
  • Изменить верхний или нижний колонтитул. и т. д., чтобы изменить его на всех страницах с помощью функции «Включить» - подходит для оповещений на всех страницах и т. д.
  • Экономия времени!
  • Более быстрая загрузка страницы!
  • Вы можете включить столько файлов, сколько вам нужно!
  • на стороне сервера!
1 голос
/ 09 ноября 2011

чем проще, тем лучше.

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

<a href="index.php">Main page</a><br>
<a href=?about>About</a><br>
<a href=?links>Links</a><br>
<br><br> 

фактические статические HTML-страницыхранится в папке txt в формате page .htm

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...