2010-04-28 15 views
11

Ho utilizzato le intestazioni per creare modelli per siti Web. È facile e molto conveniente per il debug.WebDesign: file di intestazione, ma con titoli di pagina personalizzati?

Ora ho il problema di usare la testa MA con titoli di pagina personalizzati. Se questo è il mio header.php>

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


</body> 
</html> 

ho bisogno ??? da sostituire per ogni pagina.

È possibile? Se é cosi, come? Grazie. :)

risposta

18

Non sapendo più circa il vostro schema di inclusione di file, il modo più semplice sarebbe:

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, credo di tipo I lento ...:) – Bojack

0

si potrebbe interrogare un DB per il titolo di una pagina e quindi stamparlo utilizzando PHP :)

Edit:

Guardando indietro al problema, a seconda di come avete il vostro sito web progettato questo potrebbe non essere la soluzione più semplice. Ma se stai già usando una sorta di sistema di identificazione questo dovrebbe essere facile.

1

Se io dovevo aggiungere del codice prima di includere l'intestazione, sarà d'aiuto?

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

E quindi utilizzare il valore in header.php in modo da stampare il titolo della pagina?

+0

sì ma se definisci la pagina corrente come "titolo della pagina casuale" sarà "pagina a caso" titolo "su everypage o dovrai modificare ogni pagina in cui vuoi un titolo ... a lungo andare questo è male. L'utilizzo di un database ti aiuterà consentendo di selezionare il titolo della pagina. – ChelseaStats

2

La risposta di webbiedave è perfettamente soddisfacente, ma a lungo termine dovresti davvero imparare ad usare un linguaggio template decente (Smarty, Twig) o un framework PHP che ha il suo template. Kohana e Codeigniter sono entrambi abbastanza facili da ottenere.

+0

concordato. Mentre la sua esperienza e i suoi bisogni progrediscono, dovrebbe fare il salto. La mia risposta era solo un semplice punto di partenza. – webbiedave

0

Sì, aiuterà sicuramente. Ma devi fare un po 'di personalizzazione.

Prima di tutto, assicurarsi di connettersi al database, se si desidera interrogare/recuperare i dati dal database. Affinché ciò accada, includi la pagina "config.php" all'inizio dello script, in cui sarà presente la logica di connessione del database.

Quindi, scrivere la query per recuperare i dati da tale database e assegnare tale valore alla variabile richiesta per utilizzarlo nella pagina di intestazione.

Infine, includi la tua pagina "header.php".

per la pagina "config.php": -

logica di connessione al database, come l'utilizzo di "mysql_connect()" ") mysql_select_db (" funzioni &.

Per "personalizzato.php pagina": -

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

Inoltre, se si vuole, si può sempre usare un po 'di classe per la connessione mysql & query, per recuperare i dati, ma questo è come sempre funziona

0

è possibile chiamare javascript.. di modificare il titolo della pagina in modo dinamico, questa è una soluzione migliore se si dispone di un index.php master file che chiama tutti gli altri include

0

si potrebbe anche usare qualcosa di simile:

se sposassi il tuo php nomi di file con la tua pagina titoli

è possibile utilizzare explode o str replace per rendere più user friendly la sostituzione di virgole o underscore per esempio.

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

o

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

Corretto 1 piccolo errore in entrata header.php di Webbiedave

</html> should be </title> 

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