Foros del Web » Programando para Internet » PHP »

Llamada a archivo css en función de palabra en URL

Estas en el tema de Llamada a archivo css en función de palabra en URL en el foro de PHP en Foros del Web. Hola a todos. Llevo toda la mañana buscando el código para hacer que, en caso de que aparezca una determinada palabra en el URL se ...
  #1 (permalink)  
Antiguo 04/09/2012, 04:44
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Llamada a archivo css en función de palabra en URL

Hola a todos.

Llevo toda la mañana buscando el código para hacer que, en caso de que aparezca una determinada palabra en el URL se llame a un archivo css (para aplicarlo a esa concreta url se entiende).

He probado diversos pero no me funciona ninguno.

¿Me podéis indicar dónde buscar o cómo se organiza esto?

Gracias.
  #2 (permalink)  
Antiguo 04/09/2012, 04:57
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Llamada a archivo css en función de palabra en URL

No lo entiendo....


Supongo que tendrás un "servidor", q siempre coincide...
Lo que te puede variar de la url es el query string (los parámetros que le pases)... simplemente, o le pasas un parametro específico para el css, o en uno q tengas, lo buscas con strpos...

No veo la complicación! Sería algo así

Código PHP:

$parametro 
$_POST['cadena']; //O $_GET!
if(strpos($parametro'palabra') === false
    echo 
'<link href="no_hay_palabra.css" rel="stylesheet" type="text/css" />';
else 
    echo 
'<link href="hay_palabra.css" rel="stylesheet" type="text/css" />'
No sé si no entiendo el problema bien.. intenta explicarte un poco!
__________________
>> Eleazan's Source
>> @Eleazan
  #3 (permalink)  
Antiguo 04/09/2012, 05:23
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Llamada a archivo css en función de palabra en URL

Hola Eleazan.

No hay nada que explicar, porque lo que has puesto es exactamente lo que necesitaba.

Se trata de que mis conocimientos de php son básicos y estaba en un error sin salida.

Tu solución me ha funcionado.

Un saludo y gracias.
  #4 (permalink)  
Antiguo 07/09/2012, 03:54
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Llamada a archivo css en función de palabra en URL

Hola de nuevo.

Lo cierto es que había cometido un error.

He instalado este php y no me funciona correctamente, aunque a primera vista parecía que sí.

Se trata de filtrar la palabra "contacto" según el código aportado por Eleazan:

<?php
$parametro = $_POST['cadena']; //O $_GET!
if(strpos($parametro, 'palabra') === false)
echo '<link href="no_hay_palabra.css" rel="stylesheet" type="text/css" />';
else
echo '<link href="hay_palabra.css" rel="stylesheet" type="text/css" />';
?>

Perdonad mi ignoracia, pero no sé cómo articular esto. Dónde poner "contacto".
  #5 (permalink)  
Antiguo 07/09/2012, 05:15
Avatar de kreil  
Fecha de Ingreso: septiembre-2012
Ubicación: España
Mensajes: 63
Antigüedad: 11 años, 7 meses
Puntos: 16
Respuesta: Llamada a archivo css en función de palabra en URL

Si la palabra se encuentra en el archivo que se está ejecutando. (por ejemplo localhost/contacto.php)
Sería tan sencillo como usar la variable $_SERVER. Un ejemplo:

Código PHP:
Ver original
  1. $nombre = explode("/", $_SERVER['SCRIPT_NAME']);
  2. $nombre = array_reverse($nombre);
  3. $nombre = $nombre[0];

Con eso obtenemos la dirección en la que estamos y sacamos las palabras separadas por las /. Luego volteamos el array y tomamos la última palabra que en nuestro caso sería contacto.php

Es así como lo haces?
__________________
Diseñador y programador de El break; de la informática
  #6 (permalink)  
Antiguo 07/09/2012, 05:24
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Llamada a archivo css en función de palabra en URL

No. Se trata de una palabra en la dirección url.

Por ejemplo cuando aparezca la palabra contacto en

www.laweb-web.com/contacto.html

En este caso, se tendría que cargar el archivo.
  #7 (permalink)  
Antiguo 07/09/2012, 09:42
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Llamada a archivo css en función de palabra en URL

Me ha funcionado así:

<?php
$uri = $_SERVER['REQUEST_URI'];
if ( strpos($uri,'contacto') !== false ) {
echo '<link href="hay_palabra.css" rel="stylesheet" type="text/css" />';
} else {
echo '<link href="no_hay_palabra.css" rel="stylesheet" type="text/css" />';
}
?>


Ahora, y después de reconsiderar la estrategia, me gustaría reescribir esta fórmula en sentido inverso. Es decir, si existe la palabra "contacto" no inserte nada, y sí lo haga en cualquier otro caso.

Es decir, se trata de sustituir

echo '<link href="hay_palabra.css" rel="stylesheet" type="text/css" />';

Por un vacío que yo no sé como se articula (disculpad de nuevo mi ignorancia).

Lo que quiero decir es que yo lo he puesto así:

<?php
$uri = $_SERVER['REQUEST_URI'];
if ( strpos($uri,'contacto') !== false ) {
echo '';
} else {
echo '<link href="no_hay_palabra.css" rel="stylesheet" type="text/css" />';
}
?>

Pero no sé si es correcto sintácticamente. Es decir, funciona, pero ¿es php correcto dejarlo así?

Gracias
  #8 (permalink)  
Antiguo 07/09/2012, 10:04
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Llamada a archivo css en función de palabra en URL

No te hace falta el "else", podrías poner esto:

Código PHP:
$uri $_SERVER['REQUEST_URI'];
if ( 
strpos($uri,'contacto') === false ) {
echo 
'<link href="no_hay_palabra.css" rel="stylesheet" type="text/css" />'

Así solo lo añadiria cuando exista xD

Repasa los operadores de comparacion: http://www.php.net/manual/es/languag...comparison.php

Y entenderás el cambio ;)
__________________
>> Eleazan's Source
>> @Eleazan
  #9 (permalink)  
Antiguo 07/09/2012, 10:10
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Llamada a archivo css en función de palabra en URL

Gracias.

Por cierto, si quisiera incluir más de una palabra en la misma fórmula???

"contacto" y "miembros", por ejemplo, sin tener que repetir todo el juego.
  #10 (permalink)  
Antiguo 07/09/2012, 10:56
Avatar de Eleazan  
Fecha de Ingreso: abril-2008
Ubicación: Ibiza
Mensajes: 1.879
Antigüedad: 16 años
Puntos: 326
Respuesta: Llamada a archivo css en función de palabra en URL

Para ello puedes usar los operadores lógicos en la condicion:

http://www.php.net/manual/es/languag...rs.logical.php
__________________
>> Eleazan's Source
>> @Eleazan
  #11 (permalink)  
Antiguo 07/09/2012, 12:53
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Llamada a archivo css en función de palabra en URL

Gracias Elezan.

Solucionado.

Etiquetas: css, llamada, palabra, url
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 08:45.