2010-04-28 3 views
11

J'ai utilisé des en-têtes pour créer des modèles pour des sites Web. C'est facile et très pratique pour le débogage.WebDesign: fichier d'en-tête, mais avec des titres de page personnalisés?

Je suis maintenant confronté au problème de l'utilisation de la tête BUT avec des titres de page personnalisés. Si ceci est mon header.php>

<html> 
    <head> 
     <title> My Site : ??? </html> 
    </head> 
<body> 


</body> 
</html> 

J'ai besoin ??? être remplacé pour chaque page.

Est-ce possible? Si c'est le cas, comment? Je vous remercie. :)

Répondre

18

Ne pas savoir plus sur votre système d'inclusion de fichiers, la façon la plus simple serait:

page2.php

<?php 
$pageTitle = 'Page 2'; 
include 'header.php'; 
?> 

<div>My content</div> 

<?php include 'footer.php'; ?> 

header.php

<html> 
    <head> 
     <title> My Site : <?php echo $pageTitle ?> </title> 
    </head> 
<body> 

footer.php

</body> 
</html> 
+0

Oh, je suppose que je tape lent ...:) – Bojack

0

vous pouvez interroger une base de données pour le titre d'une page et l'imprimer en utilisant php :)

Edit:

Revenant sur le problème, selon la façon dont vous avez votre site Web conçu ce peut ne pas être la solution la plus simple. Mais si vous utilisez déjà une sorte de système d'identification, cela devrait être facile.

1

Si je étaient d'ajouter du code avant d'inclure l'en-tête, cela va-t-il aider?

<?php 
    $currentPage = "Random Page Title"; 
    include "header.php"; 
?> 

Puis utilisez la valeur dans header.php pour imprimer le titre de la page?

+0

oui mais si vous définissez la page actuelle comme "titre de la page au hasard" ce sera "page aléatoire" title "sur everypage ou vous devrez éditer chaque page où vous voulez un titre ... à long terme c'est mauvais. L'utilisation d'une base de données vous aidera à sélectionner le titre de la page. – ChelseaStats

2

La réponse de webbiedave est parfaitement bien, mais à long terme, vous devriez vraiment apprendre à utiliser un langage de template décent (Smarty, Twig), ou un framework PHP qui a son propre template. Kohana et Codeigniter sont tous deux faciles à comprendre.

+0

D'accord. Au fur et à mesure que son expérience et ses besoins progressent, il devrait faire le grand saut. Ma réponse n'était qu'un simple point de départ. – webbiedave

0

Oui, cela aidera définitivement. Mais vous devez faire un peu de personnalisation. Tout d'abord, assurez-vous de vous connecter à la base de données si vous souhaitez interroger/extraire des données de la base de données. Pour cela, incluez la page "config.php" au tout début du script, dans laquelle la logique de connexion à votre base de données sera présente.

Ensuite, écrivez votre requête pour extraire les données de cette base de données et affectez cette valeur à la variable requise pour l'utiliser dans la page d'en-tête.

Enfin, ajoutez votre page "header.php".

Pour la page "config.php": -

Logique de connexion de base de données, comme l'utilisation de "mysql_connect()" & "mysql_select_db()" fonctions.

Pour "personnalisé.php » page: -

<?php 
    include "config.php"; 

    $sql = "SELECT pageTitle FROM db_table WHERE condition = 'something'"; 
    $sql_exe = mysql_query($sql) or die("Error in Fetching Page Title"); 
    if(mysql_num_rows($sql_exe)) { 
    $currentPage = mysql_result($sql_exe, 0, 0); 
    } 
    else { 
    $currentPage = "Random Page Title"; 
    } 
    mysql_free_result($sql_exe); 

    include "header.php"; 
?> 

Aussi, si vous voulez, vous pouvez toujours utiliser une classe pour la connexion mysql & requêtes, pour extraire des données Mais voici comment cela fonctionne toujours

0

vous pouvez appeler javascript.. de changer le titre de la page dynamique, c'est une meilleure solution si vous avez un fichier index.php maître qui appelle tous les autres comprend

0

vous pouvez également utiliser quelque chose comme ceci:

si vous mariez votre php noms de fichiers avec votre page titres

vous pouvez utiliser explode ou str replace pour le rendre plus convivial pour remplacer les virgules ou les traits de soulignement par exemple.

<?php 
    echo basename($_SERVER['REQUEST_URI']); 
    ?> 

ou

<?php 
    // my_page_title.php 
    $var=basename($_SERVER['REQUEST_URI']); 
    $pagetitle=str_replace("_"," ",$var); 

    // my page title 
    ?>  
    <title> My Site : <?php echo $pagetitle; ?> </title> 
0

Correction 1 petite erreur dans l'entrée header.php de Webbiedave

</html> should be </title> 

<html> 
    <head> 
     <title> My Site : <?php echo $pageTitle ?> </title> 
    </head> 
<body> 
Questions connexes