$_SERVER["SCRIPT_NAME"]
qui contient le nom du script en cours.<?php
//tableau de correspondance
//tu remarquera qu'il faut passer tes page en php, donc plus de html
$array_correspondace = array(
"services.php" => "Nos services",
"tarifs.php" => "Nos tarifs"
);
?>
<!--
Réécriture des balises title et h1 => en reprennant l'exemple d'Albat
-->
<?php
$titre = $array_correspondace[$_SERVER["SCRIPT_NAME"]];
?>
<html>
<head>
<title><?php echo $titre; ?></title>
</head>
<body>
<h1><?php echo $titre; ?></h1>
</body>
</html>
Ainsi tu fait un fichier correspondace_title.php qui contient le tableau de correspondance que tu peux inclure dans toutes tes pages.<?php
$array_correspondace = array(
"contact-nl.php" => "Ons bereiken",
"faq-nl.php" => "Meest gestelde vragen",
"portfolio-nl.php" => "Onze portfolio",
"services-nl.php" => "Onze diensten",
"voip-nl.php" => "Uw vaste lijn voor 20 euro per jaar!",
"tarifs-nl.php" => "Onze tarieven"
);
?>
Puis dans mon fichier head.php inclus dans chaque page j'ai ajouté:
<?php
include('correspondace_title.php');
$titre = $array_correspondace[$_SERVER["SCRIPT_NAME"]];
?>
au dessus de :
<title><?php echo $titre; ?></title>
Mais rien n'apparait...
Code : Tout sélectionner
<h1 id="titre">Mon Titre</h1>
<script>
document.title = document.getElementById("titre").innerHTML;
</script>
Oui mais heu... c'est référençable cette technique ? Etant donné que le titre joue un grand rôle dans le référencement et que je pensais que les moteurs de recherche n'exécutaient pas js...Voici la solution la plus simple : Tout en HTML/Js:Code : Tout sélectionner
<h1 id="titre">Mon Titre</h1> <script> document.title = document.getElementById("titre").innerHTML; </script>
$_SERVER["SCRIPT_NAME"]
par basename($_SERVER["SCRIPT_NAME"])
Et le tour est joué.
<?php
include('correspondace_title.php');
$titre = $array_correspondace[basename($_SERVER["SCRIPT_NAME"])];
?>
Et ceci entre les balises Title:<?php echo $titre; ?>
Avec un fichier correspondace_title.php:<?php
$array_correspondace = array(
"contact-nl.php" => "Ons bereiken",
"faq-nl.php" => "Meest gestelde vragen",
"portfolio-nl.php" => "Onze portfolio",
"index.php?page=services" => "Onze diensten",
"voip-nl.php" => "Uw vaste lijn voor 20 euro per jaar!",
"tarifs-nl.php" => "Onze tarieven"
);
?>
Mes pages sont accessible via http://www.depanne-pc.be/nl/index.php?page=services ou http://www.depanne-pc.be/nl/services.html grace au URL REWRITTING . Je pense que c là que ca coince dans le fichier correspondace_title.php
<?php
include('correspondace_title.php');
$titre = $array_correspondace[basename($_SERVER["SCRIPT_NAME"])];
// DEBUG
echo "<p>" . basename($_SERVER["SCRIPT_NAME"]) . "</p>";
?>
A fin de connaitre le vrai nom du script rencontré dans ton environnement.+1Effectivement, ça peut être un problème quand tu te base sur le nom du script dans l'URL qui change par URL rewriting.
Premièrement tu dois faire un débogage pour connaitre le "script name" dans le code :A fin de connaitre le vrai nom du script rencontré dans ton environnement.<?php include('correspondace_title.php'); $titre = $array_correspondace[basename($_SERVER["SCRIPT_NAME"])]; // DEBUG echo "<p>" . basename($_SERVER["SCRIPT_NAME"]) . "</p>"; ?>
<?php
$array_correspondace = array(
"services" => "Nos services",
"tarifs" => "Nos tarifs"
);
?>
Ensuite, il ne te reste plus qu'a faire<?php
$titre = $array_correspondace[$_GET["page"]];
?>
Et devrait fonctionner.<?php
include('correspondace_title.php');
$titre = $array_correspondace[basename($_SERVER["SCRIPT_NAME"])];
// DEBUG
echo "<p>" . basename($_SERVER["SCRIPT_NAME"]) . "</p>";
?>
http://www.depanne-pc.be/nl/test.html et http://www.depanne-pc.be/nl/index.php?page=test donne tout deux index.php