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!
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.
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:
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")
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
?>
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