Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Inserción de archivo a partir de nivel de URL

Estas en el tema de Inserción de archivo a partir de nivel de URL en el foro de PHP en Foros del Web. Hola Mirad, no sé si es posible esto así que lo voy a dejar aquí por si se puede. Se trata de que tengo un ...
  #1 (permalink)  
Antiguo 17/10/2013, 03:25
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Inserción de archivo a partir de nivel de URL

Hola

Mirad, no sé si es posible esto así que lo voy a dejar aquí por si se puede.

Se trata de que tengo un sitio web con necesidad de incluir un archivo css en páginas que están en el cuarto nivel de la URL.

El problema es que se trata de cientos de ellas por una cuestión que no vamos a explicar:

La URL sería así:

http://www. sitio web com/nivel1/nivel2/nivel3/nivel4

Se trataría de cientos de páginas dentro del nivel cuatro y todas ellas deben tener un css concreto.

Yo utilizo este script para meter los archivos:

Código:
<?php
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri,'nivel1/nivel2/nivel3/titulo-de-la-pagina')  !== false ) {
   echo '<link href="/css/el-archivo.css" rel="stylesheet" type="text/css" />';   
}
?>
Pero si tengo que repetir esto cientos de veces...

¿Existe alguna forma de forzar el añadido de ese css cuando la url tenga esa estructura independientemente de los títulos de los niveles y la página en el nivel final.

Gracias por vuestras respuestas.
  #2 (permalink)  
Antiguo 17/10/2013, 05:12
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Inserción de archivo a partir de nivel de URL

Si esas paginas se cargan directamente tienen que tener su css.... no hay mas remedio.

Si las cargas con AJAX podrias tener el css en el archivo llamante....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 17/10/2013, 05:22
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Inserción de archivo a partir de nivel de URL

No se cargan con Ajax, sino directamente.

Pero yo ya he utilizado este script para insertar css particulares para cada página.

¿No hay forma de automatizarlo para todas las que se se encuentren al final de esto?

http://www. sitio web com/---/---/--/final

Lo que quiero decir es que en este caso:

Código:
<?php
$uri = $_SERVER['REQUEST_URI'];
if (strpos($uri,'nivel1/')  !== false ) {
   echo '<link href="/css/el-archivo.css" rel="stylesheet" type="text/css" />';   
}
?>
El archivo css se cargaría para todas las páginas que estén a continuación de "nivel1/"

El problema es que hay que poner precisamente eso "nivel1/"

¿No hay ninguna forma de indicar niveles de URL?
  #4 (permalink)  
Antiguo 18/10/2013, 03:41
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Inserción de archivo a partir de nivel de URL

He leído por aquí que ahí que pueden contarse los slash mediante strpos().

Luego he intentado buscar la información y manuales pero no acabo de lograr nada concreto.

¿Me podéis orientar sobre cómo se hace esta función? Contar las barras en el URI para insertar luego un elemento?

Gracias.
  #5 (permalink)  
Antiguo 18/10/2013, 05:05
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Inserción de archivo a partir de nivel de URL

Código PHP:
Ver original
  1. <?php
  2. function numSlashes($uri = $_SERVER['REQUEST_URI']){
  3. $i=0;
  4. $slashes=0;
  5. while ($i<strlen($uri)){
  6.    $subUri=substr($uri,$i);
  7.    if (strpos($subUri,'/')  !=== false ) {
  8.        $slashes++;
  9.        $i=strpos($subUri,'/')+1;
  10.    }else{
  11.        $i=strlen($uri);
  12.    }
  13. }
  14. return $slashes;
  15. }
  16. ?>

Con esto puedes conseguir algo que tendras que pegar en TODOS esos ficheros, la ventaja puede ser que siempre tendrás que pegar lo mismo....

La he hecho al vuelo, intenta entenderla y depura los posibles errores....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #6 (permalink)  
Antiguo 19/10/2013, 02:58
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 18 años, 5 meses
Puntos: 8
Respuesta: Inserción de archivo a partir de nivel de URL

Gracias por el apoyo quimfv. Tu script es correcto pero lo he conseguido de una forma más simple así:

<?php
if (substr_count($_SERVER['REQUEST_URI'], '/') === 3)
{
echo '<link href="/css/el-archivo.css" rel="stylesheet" type="text/css" />';
}
?>

De esta forma, cuenta los slashes y mete un css a partir del 3 nivel (en este caso).

Un saludo.
  #7 (permalink)  
Antiguo 19/10/2013, 06:36
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Inserción de archivo a partir de nivel de URL

substr_count

Buena esta no la tenia en la agenda!!!
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Etiquetas: inserción, nivel, 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 05:26.