web-dev-qa-db-fra.com

Création d'un PHP en-tête / pied de page

Je conçois un site relativement simple pour un ami. Je voudrais implémenter php pour qu'il puisse changer son en-tête/pied de page sans avoir à parcourir chaque fichier. Le problème est que je ne connais pas du tout le fonctionnement de php. Existe-t-il un moyen simpliste de procéder? J'ai vu quelques réponses sur la façon de créer un en-tête php, mais elles semblent toutes différentes et je n'ai pas eu beaucoup de succès. Je ne dis pas qu'ils ne fonctionnent pas (je l'ai probablement mal fait) mais le plus simple dans ce cas, le mieux.

Merci!

16
rjwctm21

Outre l'utilisation de include() ou include_once() pour inclure l'en-tête et le pied de page, une chose que j'ai trouvée utile est de pouvoir avoir un titre de page personnalisé ou des balises de tête personnalisées à inclure pour chaque page , mais ont toujours l'en-tête dans une inclusion partielle. J'accomplis généralement cela comme suit:

Dans les pages du site:

<?php

$PageTitle="New Page Title";

function customPageHeader(){?>
  <!--Arbitrary HTML Tags-->
<?php }

include_once('header.php');

//body contents go here

include_once('footer.php');
?>

Et, dans le fichier 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>

Peut-être un peu au-delà de la portée de votre question d'origine, mais il est utile de permettre un peu plus de flexibilité avec l'inclusion.

37
William

Créez simplement le fichier header.php, et où vous voulez l'utiliser:

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

Même chose avec le pied de page. Vous n'avez pas besoin de balises php dans ces fichiers si vous n'avez que du HTML.

En savoir plus sur ici:

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

16
Ben

Vous pouvez le faire en utilisant la fonction include_once() en php. Construisez une partie d'en-tête au nom de header.php et construire la partie pied de page par footer.php. Enfin, incluez tout le contenu dans un seul fichier.

Par exemple:

header.php

<html>
<title>
<link href="sample.css">

footer.php

</html>

Donc, les fichiers finaux ressemblent

include_once("header.php") 

body content(The body content changes based on the file dynamically)

include_once("footer.php") 
3
Mohan Shanmugam

Vous pouvez utiliser ceci pour l'en-tête: Important: Mettez ce qui suit sur votre PHP pages dont vous souhaitez inclure le contenu.

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

Vous pouvez également inclure une barre de navigation globalement, utilisez-la plutôt à la place:

 <?php
 // At top:
require('header.php'); 
 ?>
  <?php
// At bottom:
require('footer.php');
 ?>
 <?php
 //Wherever navbar goes:
require('navbar.php'); 
?>

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

Ne fermez pas les balises Body ou Html!
Inclure html ici:

 <?php
 //Or more global php here:

 ?>

Footer.php:

Code ici:

<?php
//code

?>

Navbar.php:

<p> Include html code here</p>
<?php
 //Include Navbar PHP code here

?>

Bénéfices:

  • Script du fichier php principal (index.php) plus propre.
  • Modifiez l'en-tête ou le pied de page. etc pour le changer sur toutes les pages avec le include— Bon pour les alertes sur toutes les pages etc ...
  • Un gain de temps!
  • Chargements de page plus rapides!
  • vous pouvez avoir autant de fichiers à inclure que nécessaire!
  • côté serveur!
2
user8803833

plus c'est simple, mieux c'est.

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> 

les pages html statiques réelles stockées dans le dossier txt au format page. htm

1