Foros del Web » Programando para Internet » PHP »

Incluir archivo CSS en cabecera HTML según clic del usuario

Estas en el tema de Incluir archivo CSS en cabecera HTML según clic del usuario en el foro de PHP en Foros del Web. Estoy haciendo un pequeño script que detecta archivos CSS en un directorio y lee una línea de cada uno, devolviendo los resultados a una página ...
  #1 (permalink)  
Antiguo 23/06/2008, 08:54
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Incluir archivo CSS en cabecera HTML según clic del usuario

Estoy haciendo un pequeño script que detecta archivos CSS en un directorio y lee una línea de cada uno, devolviendo los resultados a una página principal. Esto fue lo que hice y funciona correctamente:

Código PHP:
<?php
$excluir 
= array ('.','..');
$directorio 'archivos';
$listar opendir($directorio);

while (
$archivo readdir($listar)) {
  if (!
is_dir($archivo) && !in_array($archivo,$excluir) && strpos($archivo'.css')) {  
  
$leer file($directorio.'/'.$archivo);
  
$linea1 $leer[1];
  
$linea1 trim(iconv('ISO-8859-1''UTF-8'$linea1));
  
$linea1 str_replace('Título: ' '' $linea1);

  
$resultado .= "<li><a href=\"./\" >$linea1</a></li>\n  " ;
  }
}
closedir($listar);
?>
Código HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>hola</title>
<link rel="stylesheet" type="text/css" media="screen" href="estilos.css" />
</head>
<body>
<ul>
<?php echo $resultado ?>
</ul>
</body>
</html> 
Para explicar mejor lo que sigue subí el ejemplo en vivo:

http://www.darioferrer.com/varios/cambiocss/

Aquí pueden ver los archivos que estoy llamando desde la principal:

http://www.darioferrer.com/varios/cambiocss/archivos/

Como pueden ver, dentro de cada archivo hay una línea específica que invoco por medio de la función file() y la reflejo como nombre de ese archivo.

Ahora el problema: Necesito incluir los archivos CSS en la cabecera cuando el usuario haga clic en esos enlaces. Es decir, que cada clic llame a un archivo distinto al header por medio de la etiqueta <link> tal como un CSS normal ¿cómo le hago?.
  #2 (permalink)  
Antiguo 23/06/2008, 10:47
Avatar de yrduk  
Fecha de Ingreso: enero-2007
Ubicación: Caracas, Venezuela
Mensajes: 277
Antigüedad: 17 años, 3 meses
Puntos: 3
Respuesta: Incluir archivo CSS en cabecera HTML según clic del usuario

Hola metacortex! Podrías trabajar con GET, simplemente enviando el nombre del archivo CSS en el link que está adentro del <li></li>... algo así:

Código PHP:
<?php
$excluir 
= array ('.','..');
$directorio 'archivos';
$listar opendir($directorio);

while (
$archivo readdir($listar)) {

  if (!
is_dir($archivo) && !in_array($archivo,$excluir) && strpos($archivo'.css')) {  
  
$leer file($directorio.'/'.$archivo);
  
$linea1 $leer[1];
  
$linea1 trim(iconv('ISO-8859-1''UTF-8'$linea1));
  
$linea1 str_replace('Título: ' '' $linea1);
$archivo_link str_replace(".css","",$archivo);
  
$resultado .= "<li><a href=\"./?mostrar=".$archivo_link."\" >$linea1</a></li>\n  " ;
  }
}
closedir($listar);
?>
y en la etiqueta head, para colocar el <link> del .css podrías poner algo asi:
Código PHP:
<?php
if($_GET[mostrar] != "") {
$archivo $_GET[mostrar];
if(
file_exists("./archivos/".$archivo.".css")) {
echo 
'<link rel="stylesheet" type="text/css" href="archivos/".$archivo.".css" />';
}
else
{
/* aqui podrias mostrar un css por defecto, que podría ser el que tienes actualmente. */
}
}
?>
Saludos!
__________________
Twitter/kudry
mkd.la - blog
  #3 (permalink)  
Antiguo 23/06/2008, 11:52
Avatar de metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 19 años, 10 meses
Puntos: 832
Respuesta: Incluir archivo CSS en cabecera HTML según clic del usuario

Buenísimo . Funciona perfecto. Mil gracias yrduk.
  #4 (permalink)  
Antiguo 23/06/2008, 12:02
Avatar de yrduk  
Fecha de Ingreso: enero-2007
Ubicación: Caracas, Venezuela
Mensajes: 277
Antigüedad: 17 años, 3 meses
Puntos: 3
Respuesta: Incluir archivo CSS en cabecera HTML según clic del usuario

Me alegra Saludos!!
__________________
Twitter/kudry
mkd.la - blog
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:21.