2010-04-28 12 views
11

He estado usando encabezados para crear plantillas para sitios web. Es fácil y muy conveniente para la depuración.WebDesign: archivo de encabezado, pero con títulos de página personalizados?

Ahora me enfrento al problema de utilizar cabeza PERO con títulos de página personalizados. Si esto es mi header.php>

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


</body> 
</html> 

necesito ??? para ser reemplazado por cada página.

¿Esto es posible? ¿Si es así, cómo? Gracias. :)

Respuesta

18

Sin saber más acerca de su esquema de inclusión de archivos, la forma más sencilla sería:

pagina2.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, supongo que el tipo i lento ...:) – Bojack

0

se podía consultar una base de datos para el título de una página y luego imprimirlo utilizando php :)

Editar:

Mirando hacia atrás en el problema, dependiendo de cómo usted tiene su sitio web diseñado este puede no ser la solución más simple. Pero si ya está usando algún tipo de sistema de identificación, esto debería ser fácil.

1

Si fueron agregar algún código antes de incluir el encabezado, ¿será de ayuda?

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

Y a continuación, utilice el valor en header.php para imprimir el título de la página?

+0

sí, pero si define la página actual como "título de página aleatorio" será "página aleatoria" título "en cada página o tendrás que editar cada página donde quieras un título ... a la larga esto es malo. Usar una base de datos ayudará al permitirle seleccionar el título de la página. – ChelseaStats

2

La respuesta de webbiedave está perfectamente bien, pero a la larga, debes aprender a usar un lenguaje de plantilla decente (Smarty, Twig) o un framework PHP que tenga su propia plantilla. Kohana y Codeigniter son bastante fáciles de entender.

+0

De acuerdo. A medida que su experiencia y necesidades progresan, él debe dar el salto. Mi respuesta fue solo un simple punto de partida. – webbiedave

0

Sí, definitivamente ayudará. Pero necesitas hacer un poco de personalización.

En primer lugar, asegúrese de conectarse a la base de datos, si desea consultar/recuperar datos de la base de datos. Para que esto suceda, incluya la página "config.php" al comienzo de la secuencia de comandos, en la que estará presente la lógica de conexión de la base de datos.

Luego, escriba su consulta para obtener datos de esa base de datos y asigne ese valor a la variable requerida para usarla en la página de encabezado.

Por último, incluya su página "header.php".

Por página "config.php": -

lógica de la conexión con la base, como el uso de "mysql_connect()" & "mysql_select_db) (" funciones.

Para "personalizado.php página": -

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

Además, si lo desea, puede utilizar siempre alguna clase de conexión MySQL & consultas, para obtener los datos, pero esto es lo que siempre funciona

0

puede llamar a javascript.. cambiar el título de la página de forma dinámica, esta es una mejor solución si usted tiene un archivo index.php principal que llama a todos otra incluye

0

también podría usar algo como esto:

si usted se casó con su php nombres de archivo con tu página títulos

puede usar explosión o reemplazar str para que sea más fácil de usar para reemplazar las comas o guiones bajos, por ejemplo.

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

corregido 1 error pequeño en la entrada header.php de Webbiedave

</html> should be </title> 

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