Version courte: Vous ne pouvez pas. Si vous faites cela, vous obtiendrez une notification "variable indéfinie".
Je trouve qu'il est généralement beaucoup plus pratique d'avoir un header.php
(et un footer.php
d'ailleurs) qui est inclus dans l'index, la maison, le contact ou tout autre fichier. L'avantage est que vous n'avez pas de code redondant, et si vous devez apporter une modification dans l'en-tête ou le pied de page, vous devez seulement modifier un fichier.
Ainsi, par exemple, 'about_us.php' ressemblerait à ceci:
<?php
include('path/to/header.php');
#body goes here
include('path/to/footer.php');
?>
Et votre tête serait quelque chose comme:
<?php
$title = ucfirst(str_replace('_', ' ', substr(basename($_SERVER['PHP_SELF']), 0, -4));
?>
<html>
<head>
<title><?php echo $title; ?> page</title>
<meta name="description" content="this is the home page" />
<meta name="keywords" content="home, awesome, yes" />
</head>
<body>
La variable $title
sera le nom du fichier, moins le extension, avec tous les traits de soulignement remplacés par des espaces et la première lettre du premier mot en majuscule. Donc, fondamentalement, about_us.php
serait converti en "A propos de nous". C'est pas nécessairement une solution générale, mais je l'ai donné en exemple en gardant à l'esprit que vous vouliez utiliser un titre dynamique dans votre exemple original. Pour la description dynamique et les mots-clés, en fonction du nom de fichier, vous pouvez également affecter différentes valeurs à l'aide d'une instruction switch()
.
MISE À JOUR:
Une autre solution, bien que sorte de l'inverse de ce que vous demandez, mais en même temps beaucoup plus proche de ce que vous cherchez serait d'écrire le header.php
comme
<html>
<head>
<title><?php echo $title; ?> page</title>
<meta name="description" content="<?php echo $desc; ?>" />
<meta name="keywords" content="<?php echo $keywords; ?>" />
</head>
<body>
... le pied comme ...
</body>
</html>
...puis les inclure dans vos autres fichiers:
<?php
$title = 'Your title';
$desc = 'Your description';
$keywords = 'The, big, brown, fox, jumps, over, the, lazy, dog';
include('path/to/header.php');
?>
<!-- body goes here -->
<?php
include('path/to/footer.php');
?>
De cette façon, vous assignez toutes les variables avant de vous incluez les fichiers dans lesquels ils sont référencés, vous avez des fichiers distincts pour tous les liens et vous n » t besoin de commutateurs sophistiqués. Aussi, en guise de remarque, encapsuler le HTML du corps en PHP est tout simplement une mauvaise pratique. Essayez de garder le HTML séparé du PHP autant que possible en général. Il vous aidera à la fois, et celui qui va travailler sur le code à l'avenir.
Espérons que cela aide!
Bon, alors je ferais alors l'intégralité du contenu principal de home.php dans une variable longue? –
OUI. Vous pouvez mettre toutes vos variables dans HOME.PHP, assurez-vous de l'inclure en haut de votre fichier. –