Ver Mensaje Individual
  #4 (permalink)  
Antiguo 10/07/2006, 11:00
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 4 meses
Puntos: 129
Cita:
Digamos que la pagina principal se titula (en la barra de titulo del explorador) "PAGINA INICIAL". Lo que quiero es que en lugar de que en la bdd me muestre "/index.php" me muestre el titulo de ESA pagina que se visitó, es decir "PAGINA INICIAL".
Ok .. Con PHP se pude hacer dinámicamente lo que pretendes .. ahora .. no lo encuentro óptimo .. un sobre-consumo de recursos para una taréa que conociendo que PHP "genera" la página que al final entregas a tu navegador .. ese dato lo podrías tener en una variable y hacer el proceso de:

0) registrar el nombre en tus BBDD.
1) darle nombre a tu página.

Me refiero a:

Código PHP:
<?
$titulo_pagina
="blablabla";
// registraas el dato en tu BBDD.
?>
<html>
<head>
<title><? echo $titulo_pagina ?></title>
</head>
<etc página HTML ...>
O incluso una BBDD donde relaciones tu URL de tu página (la que obtienees de $_SERVER['PHP_SELF'] con ruta .. ) con el "nombre" del título de la página .. Eso lo harías a la hora de generar tus informes/estadísticas .. mientras tanto seguirías registrando el URL como ahora lo haces.

Así es como trataría el tema por mi parte. De hecho el tener la BBDD con la relación "título página -> URL" se presta para generar menús por ejemplo dinámicamente .. establecer incluso permisos de acceso a usuarios por "aplicación" .. etc. (registrando algunos datos más en esa misma BBDD tabla ..)

-----------------------------------------------------

Sobre lo que tu pedías en concreto .. Como te he comentado PHP se "procesa" en el servidor antes de que el "HTML" generado sea interpretado por el navegador .. así que para obtener un dato del "HTML" que generas con PHP, habría que "capturarlo" del buffer de salida que PHP genera al procesar. (Es ese "trabajo" extra de PHP el que se puede evitar con las soluciones antes planteadas).

Para capturar el buffer tienes que usar las funciones del grupo "ob_start()" y afines ..

al principio de tu código:
Código PHP:
<?
// inicias la captura del buffer
ob_start();
?>

tu actual página HTML/PHP ...

<?
// al final de tu código actual ...
// caputras el buffer de salida hacia una variable (ahí estará tu página generada HTML/CSS etc ..)
$html_generado=ob_get_contents();

// Procesas el HTML generado para actar y quedarte con lo que esté entre la etiqueta <title> y </title> (con expresiones regulares).

 
if (eregi("<title>(.*)</title>"$html_generado$salida)) { 
         
$titulo_pagina $salida[1]; 
 } else {
         
$titulo_pagina "Sin título";
 }

// haces tu proceso con la variable obtenida (hazlo en este punto .. antes no existirá tu dato ...)

// entregas el buffer a la salida y continuas al proceso normal ...
ob_end_flush();
?>

Un saludo,
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.