Foros del Web » Programando para Internet » PHP »

Añadir enlace de css com PHP dentro del /head/

Estas en el tema de Añadir enlace de css com PHP dentro del /head/ en el foro de PHP en Foros del Web. Hola amigos, Deseo usar PHP para resolver algunos problemas que tengo con CSS referente a los conflictos de IE8 y otros navegadores. He leído algunas ...
  #1 (permalink)  
Antiguo 01/09/2010, 06:15
 
Fecha de Ingreso: mayo-2009
Ubicación: Leganés - Madrid
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 1
Añadir enlace de css com PHP dentro del /head/

Hola amigos,

Deseo usar PHP para resolver algunos problemas que tengo con CSS referente a los conflictos de IE8 y otros navegadores. He leído algunas orientaciones y quiero usar el PHP como herramienta para eso. Pero he compilado algunos códigos que encontré y no logré éxito.

Aquí está lo que estoy intentando:

1) Uso una función para identificar el navegador;
2) Creé una variable "$nav" para recibir la información del navegador en uso;
3) Solamente para prueba he dado un "echo" en la variable "$nav" para verificar si esta con alguna información y si esta esta correcta;
4) Empecé a montar el encabezamiento da página html.
5) Cuando llego en la construcción del /head/ uso una condicional, o sea, si el navegador identificado fuese Internet Explorer añada a la linea de estilo de css:

Cita:
<link href="estilo_ie.css" rel="stylesheet" type="text/css" />
De lo contrario:

Cita:
<link href="estilo.css" rel="stylesheet" type="text/css" />
PROBLEMAS:

1) La condicional no esta funcionando porque en los navegadores que he hecho la prueba el script está cargando solamente el "estilo_ie.css" en cualquier navegador.

2) Usando el Firebug y el DragonFlyer para verificar el estilo cargado verifiqué que el PHP está añadiendo la linea dentro del /body/ y no dentro del /head/.

Si alguien estuviese dispuesto a ayudarme aquí estoy para hacer las pruebas.
Pongo abajo el código para identificación de los posibles errores:

Código PHP:
<?php  
function ObtenerNavegador($user_agent) {  
        
$navegadores = array(  
            
'Opera' => 'Opera',  
            
'Mozilla Firefox'=> '(Firebird)|(Firefox)',  
            
'Galeon' => 'Galeon',  
            
'Mozilla'=>'Gecko',  
            
'MyIE'=>'MyIE',  
            
'Lynx' => 'Lynx',  
            
'Netscape' => '(Mozilla/4\.75)|(Netscape6)|(Mozilla/4\.08)|(Mozilla/4\.5)|(Mozilla/4\.6)|(Mozilla/4\.79)',  
            
'Konqueror'=>'Konqueror',  
            
'Internet Explorer 8' => '(MSIE 8\.[0-9]+)',             
            
'Internet Explorer 7' => '(MSIE 7\.[0-9]+)',  
            
'Internet Explorer 6' => '(MSIE 6\.[0-9]+)',  
            
'Internet Explorer 5' => '(MSIE 5\.[0-9]+)',  
            
'Internet Explorer 4' => '(MSIE 4\.[0-9]+)',  
);  
foreach(
$navegadores as $navegador=>$pattern){  
    if (
eregi($pattern$user_agent))  
    return 
$navegador;  
    }  
return 
'';  
}  
?> 
<?php
$nav 
ObtenerNavegador($_SERVER['HTTP_USER_AGENT']);
echo 
$nav;
?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<?php
if ($nav "Internet Explorer 8")
    {
?>
<link href="estilo_ie.css" rel="stylesheet" type="text/css" />
<?php
}
else
{
?>
<link href="estilo.css" rel="stylesheet" type="text/css" />
<?php
}
?>
<meta http-equiv="Content-Type" content="text/html; charset= iso-8859-1" />
</head>
<body>
</body>
</html>
Saludos!
Gabriel
  #2 (permalink)  
Antiguo 01/09/2010, 08:33
 
Fecha de Ingreso: febrero-2009
Mensajes: 218
Antigüedad: 15 años, 2 meses
Puntos: 9
Respuesta: Añadir enlace de css com PHP dentro del /head/

Hola, no leí minuciosamente todo el codigo, pero tenes un error en la linea:
Código PHP:
Ver original
  1. if ($nav = "Internet Explorer 8")
  2.  
  3. deberia ser:
  4. if ($nav == "Internet Explorer 8")
Como lo estas haciendo la variable va a tomar siempre el valor "Internet Explorer 8"
  #3 (permalink)  
Antiguo 01/09/2010, 08:42
 
Fecha de Ingreso: mayo-2009
Ubicación: Leganés - Madrid
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Añadir enlace de css com PHP dentro del /head/

Hola Fernando,

Gracias por la orientación.
He arreglado y algo ya está mejor.
Ahora ya llama el archivo correcto...pero aun sigue añadiendo la linea dentro do Body y no dentro do head.
Gracias por la ayuda.
Aguardo nuevas orientaciones.
Gabriel
  #4 (permalink)  
Antiguo 01/09/2010, 08:53
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Tema movido desde PHP orientado a objetos a PHP
  #5 (permalink)  
Antiguo 01/09/2010, 09:13
 
Fecha de Ingreso: mayo-2009
Ubicación: Leganés - Madrid
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 1
[RESUELTO] Añadir enlace de css com PHP dentro del /head/

Hola!

Estuve verificando aquí y creo que esta todo resuelto.
Ahora esta cargando los estilos. Cuando uso estés "inspectores de elementos" (firebug, dragonfly entre otros) la linea adicionada pelo PHP aparece dentro del Body, pero no cambia nada y todo salí bien.
Entonces doy por resuelto.
Gracias por la ayuda.
Saludos!

Gabriel
  #6 (permalink)  
Antiguo 01/09/2010, 09:35
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Añadir enlace de css com PHP dentro del /head/

Un detalle "cosmético". Cambiar la sintaxis por esta:

Código PHP:
<?php if ($nav "Internet Explorer 8"): ?> 
<link href="estilo_ie.css" rel="stylesheet" type="text/css" /> 
<?php else: ?> 
<link href="estilo.css" rel="stylesheet" type="text/css" /> 
<?php endif; ?>
Cita:
la linea adicionada por PHP aparece dentro del Body
? Que raro.
  #7 (permalink)  
Antiguo 01/09/2010, 15:03
 
Fecha de Ingreso: mayo-2009
Ubicación: Leganés - Madrid
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Añadir enlace de css com PHP dentro del /head/

Hola Mayid;

Como tenia mas elementos para ser añadidos he utilizado esta condicional y funciona bien. No sé si técnicamente esta correcta.

Código PHP:
<?php
if ($nav == "Internet Explorer 8") {
?>

<link href="estilo_ie.css" rel="stylesheet" type="text/css" />

<?php
} else if ($nav == "Internet Explorer 7") {
?>

<link href="estilo_ie.css" rel="stylesheet" type="text/css" />

<?php
} else if ($nav == "Internet Explorer 6") {
?>

<link href="estilo_ie.css" rel="stylesheet" type="text/css" />

<?php
} else {
?>

<link href="estilo.css" rel="stylesheet" type="text/css" />

<?php
}
?>
Saludos!
Gabriel
  #8 (permalink)  
Antiguo 01/09/2010, 15:07
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Añadir enlace de css com PHP dentro del /head/

Gabprog, puedes resumir aún mas tu código...
Código PHP:
if ($foo == 'bar' OR $foo == 'candy' OR $foo == 'does'// ... 
ya que usas el mismo estilo_ie.css para tres condiciones distintas, cuando puedes agruparlas en una misma...
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.
  #9 (permalink)  
Antiguo 01/09/2010, 15:14
Avatar de claudiovega  
Fecha de Ingreso: octubre-2003
Ubicación: Puerto Montt
Mensajes: 3.667
Antigüedad: 20 años, 6 meses
Puntos: 11
Respuesta: Añadir enlace de css com PHP dentro del /head/

Cita:
Iniciado por Gabprog Ver Mensaje
...pero aun sigue añadiendo la linea dentro do Body y no dentro do head.
Gabriel
Has probado quitar la linea:

echo $nav;
  #10 (permalink)  
Antiguo 01/09/2010, 15:16
 
Fecha de Ingreso: mayo-2009
Ubicación: Leganés - Madrid
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Añadir enlace de css com PHP dentro del /head/

He seguido la orientación,

Mira como lo tengo ahora:

Código PHP:
<?php
if ($nav == "Internet Explorer 8" OR $nav == "Internet Explorer 7" OR $nav == "Internet Explorer 6") {
?>
<link href="estilo_ie.css" rel="stylesheet" type="text/css" />

<?php
} else {
?>

<link href="estilo.css" rel="stylesheet" type="text/css" />

<?php
}
?>
Saludos!
  #11 (permalink)  
Antiguo 01/09/2010, 15:20
 
Fecha de Ingreso: mayo-2009
Ubicación: Leganés - Madrid
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Añadir enlace de css com PHP dentro del /head/

Cita:
Iniciado por claudiovega Ver Mensaje
Has probado quitar la linea:

echo $nav;
Si... he quitado la linea.
echo $nav;

La usava solamente para estar seguro que el PHP estaba identificando el navegador.
Saludos!
  #12 (permalink)  
Antiguo 01/09/2010, 15:47
Avatar de mayid
Colaborador
 
Fecha de Ingreso: marzo-2009
Ubicación: BsAs
Mensajes: 4.014
Antigüedad: 15 años, 1 mes
Puntos: 101
Respuesta: Añadir enlace de css com PHP dentro del /head/

Cita:
if ($nav == "Internet Explorer 8" OR $nav == "Internet Explorer 7" OR $nav == "Internet Explorer 6")
Que también podría ser:

if ( strpos( $nav, "Explorer") !== false )

En síntesis:
Código PHP:
<?php if ( strpos$nav"Explorer") !== false ): ?>
<link href="estilo_ie.css" rel="stylesheet" type="text/css" />
<?php else: ?>
<link href="estilo.css" rel="stylesheet" type="text/css" />
<?php endif; ?>
  #13 (permalink)  
Antiguo 01/09/2010, 16:27
 
Fecha de Ingreso: mayo-2009
Ubicación: Leganés - Madrid
Mensajes: 37
Antigüedad: 14 años, 11 meses
Puntos: 1
Respuesta: Añadir enlace de css com PHP dentro del /head/

mayid,

He gustado... un código mas limpio y práctico.
He dejado este:

Código PHP:
<?php if ( strpos$nav"Explorer") !== false ): ?>
<link href="estilo_ie.css" rel="stylesheet" type="text/css" />
<?php else: ?>
<link href="estilo.css" rel="stylesheet" type="text/css" />
<?php endif; ?>
Abrazos!

Etiquetas: añadir, css, enlace, head
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

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 13:29.