2010-04-28 8 views
11

Używam nagłówków do tworzenia szablonów dla stron internetowych. Jest to łatwe i bardzo wygodne do debugowania.WebDesign: Nagłówek, ale z niestandardowymi tytułami stron?

Teraz stoję przed problemem używania głowy, ale z niestandardowymi tytułami stron. Jeśli jest to mój header.php>

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


</body> 
</html> 

muszę ??? do zastąpienia dla każdej strony.

Czy to możliwe? Jeśli tak to jak? Dziękuję Ci. :)

Odpowiedz

18

Nie wiedząc więcej o swojej integracji systemu plików, najprostszym sposobem byłoby:

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, chyba wpisać powoli ...:) – Bojack

0

można kwerendy DB do tytułu strony, a następnie wydrukować go za pomocą php :)

Edit:

Patrząc na problem, w zależności jak masz swoją stronę zaprojektowane ten może nie być najprostszym rozwiązaniem. Ale jeśli już korzystasz z jakiegoś systemu identyfikacji, powinno to być łatwe.

1

Jeśli mieli dodać jakiś kod przed dodaniem nagłówka, czy to pomoże?

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

A następnie użyj wartości w header.php, więc wydrukuj tytuł strony?

+0

tak, ale jeśli zdefiniujesz bieżącą stronę jako "losowy tytuł strony", będzie to "losowa strona" tytuł "na każdej stronie lub będziesz musiał edytować każdą stronę, na której chcesz tytuł ... w dłuższej perspektywie jest to złe. Korzystanie z bazy danych pomaga, pozwalając wybrać tytuł strony. – ChelseaStats

2

Odpowiedź webbiedave jest całkowicie w porządku, ale na dłuższą metę powinieneś naprawdę nauczyć się używać przyzwoitego języka szablonów (Smarty, Twig) lub framework PHP, który ma własne szablony. Kohana i Codeigniter są dość łatwe do opanowania.

+0

Uzgodnione. W miarę, jak jego doświadczenie i potrzeby się rozwijają, powinien wykonać skok. Moja odpowiedź była tylko prostym punktem wyjścia. – webbiedave

0

Tak, to zdecydowanie pomoże. Ale musisz zrobić małe dostosowanie.

Przede wszystkim upewnij się, że łączysz się z bazą danych, jeśli chcesz zapytać/pobrać dane z bazy danych. Aby tak się stało, dołącz stronę "config.php" na samym początku skryptu, w którym będzie znajdować się logika połączenia z bazą danych.

Następnie wpisz zapytanie w celu pobrania danych z bazy danych i przypisz tę wartość do wymaganej zmiennej, aby użyć jej na stronie nagłówka.

Na koniec dołącz swoją stronę "header.php".

Na stronie "config.php": -

Logika połączeniu z bazą danych przy użyciu jak z "mysql_connect()" "() mysql_select_db" funkcje &.

Dla "niestandardowych.php”strona: -

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

Ponadto, jeśli chcesz, zawsze można użyć jakąś klasę do połączenia mysql & zapytaniami, aby pobrać dane, ale tak to zawsze działa

0

można wywołać javascript.. aby zmienić tytuł strony dynamicznie, jest to lepsze rozwiązanie, jeśli masz plik index.php mistrz, który wywołuje wszystkie pozostałe obejmuje

0

można również użyć czegoś takiego:

jeśli żonaty swój php nazwy plików ze swoją stroną tytuły:

można użyć polecenia rozbicia lub str zamiany, aby na przykład ułatwić zastąpienie przecinków lub podkreśleń.

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

lub

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

Poprawione 1 mały błąd w Webbiedave za wejściem header.php

</html> should be </title> 

<html> 
    <head> 
     <title> My Site : <?php echo $pageTitle ?> </title> 
    </head> 
<body> 
Powiązane problemy