2010-04-28 8 views
11

Ich habe Header verwendet, um Vorlagen für Websites zu erstellen. Es ist einfach und sehr bequem zum Debuggen.WebDesign: Header-Datei, aber mit benutzerdefinierten Seitentiteln?

Ich habe jetzt das Problem der Verwendung Kopf ABER mit benutzerdefinierten Seitentiteln. Wenn das ist mein header.php>

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


</body> 
</html> 

Ich brauche ??? für jede Seite ersetzt werden.

Ist das möglich? Wenn das so ist, wie? Vielen Dank. :)

Antwort

18

nicht mehr über Ihre Datei Aufnahme Schema zu wissen, wäre die einfachste Art und Weise:

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, ich denke, ich geben langsam ...:) – Bojack

0

Sie eine DB für den Titel einer Seite abfragen könnte und es dann mit PHP drucken :)

Edit:

Mit Blick auf das Problem zurück, je nachdem, wie Sie Ihre Website gestaltet diese haben ist vielleicht nicht die einfachste Lösung. Aber wenn Sie bereits eine Art von ID-System verwenden, sollte dies einfach sein.

1

Wenn ich vor dem Einbinden der Kopfzeile noch etwas Code hinzufügen, hilft das?

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

Und dann verwenden Sie den Wert in header.php, so drucken Sie den Seitentitel?

+0

Ja, aber wenn Sie die aktuelle Seite als "zufälligen Seitentitel" definieren, wird dies "zufällige Seite" sein Titel "auf jeder Seite oder Sie müssen jede Seite bearbeiten, wo Sie einen Titel wollen ... auf lange Sicht ist das schlecht. Wenn Sie eine Datenbank verwenden, können Sie den Seitentitel auswählen. – ChelseaStats

2

Die Antwort von webbiedave ist vollkommen in Ordnung, aber auf lange Sicht sollten Sie wirklich lernen, entweder eine anständige Template-Sprache (Smarty, Twig) oder ein PHP-Framework zu verwenden, das eigene Templates hat. Kohana und Codeigniter sind beide ziemlich einfach zu erreichen.

+0

Einverstanden. Wenn seine Erfahrungen und Bedürfnisse Fortschritte machen, sollte er den Sprung machen. Meine Antwort war nur ein einfacher Ausgangspunkt. – webbiedave

0

Ja, es wird definitiv helfen. Aber Sie müssen ein wenig Anpassung vornehmen.

Stellen Sie zunächst sicher, dass Sie eine Verbindung zur Datenbank herstellen, wenn Sie Daten aus der Datenbank abfragen/abrufen möchten. Dazu fügen Sie am Anfang des Skripts die Seite "config.php" ein, in der Ihre Datenbankverbindungslogik vorhanden ist.

Schreiben Sie dann Ihre Abfrage, um Daten aus dieser Datenbank abzurufen, und weisen Sie diesen Wert der erforderlichen Variablen zur Verwendung in der Kopfseite zu.

Schließlich, schließen Sie Ihre "header.php" Seite ein.

Für "config.php" Seite: -

Logik der Datenbankverbindung, wie unter Verwendung von "mysql_connect()" & "mysql_select_db()" Funktionen.

Für "benutzerdefinierte.php“Seite: -

<?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"; 
?> 

Auch, wenn Sie möchten, können Sie immer eine Klasse verwenden für MySQL-Verbindung & Abfragen, Daten zu holen Aber das ist, wie es immer funktioniert

0

Sie Javascript aufrufen.. den Titel der Seite dynamisch zu ändern, ist dies eine bessere Lösung, wenn Sie eine Master-Datei index.php, die alle anderen Anrufe umfasst

0

Sie auch so etwas wie diese verwenden:

wenn Sie verheiratet up your php Dateinamen mit Ihrer Seite Titel

Sie könnten explode oder str ersetzen verwenden, um es benutzerfreundlicher zu machen, zum Beispiel Kommas oder Unterstriche zu ersetzen.

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

oder

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

Korrigierte 1 kleiner Fehler in Webbiedave der header.php Eintrag

</html> should be </title> 

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