Foros del Web » Programando para Internet » PHP »

Combinar Script o partes

Estas en el tema de Combinar Script o partes en el foro de PHP en Foros del Web. Hola. Hace unos días discutimos sobre la forma de detectar un link en un sitemap xml para inserción de un css en caso de darse. ...
  #1 (permalink)  
Antiguo 07/10/2013, 11:30
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años, 1 mes
Puntos: 8
Combinar Script o partes

Hola.

Hace unos días discutimos sobre la forma de detectar un link en un sitemap xml para inserción de un css en caso de darse.

Se llegó a este script, que funciona correctamente:

Código:
    $DomDocument = new DOMDocument();
    $DomDocument->preserveWhiteSpace = false;
    $DomDocument->load('http://www. sitio .com/index.php?option=com_xmap&view=xml&tmpl=component&id=1');
    $DomNodeList = $DomDocument->getElementsByTagName('loc');
     
    foreach($DomNodeList as $url) {
        $urls[] = $url->nodeValue;
    }
    if(in_array("http://www. sitio .com/enlace-a",$urls)){
    $css= '<link href="/css/enlace-a.css" rel="stylesheet" type="text/css" />';
    }
    echo $css;

Así en el caso del ejemplo, busca www. sitio .com/enlace-a en el sitemap y si lo encuentra inserta.

Como os digo, y para el que le interese, funciona perfectamente.

El problema es que tengo que repetir la operación con respecto a 14 enlaces, para insertar un estilo css concreto en cada caso. He probado varias formas de combinar cada if dentro del script sin resultados.

Hay alguna forma de reducir el tema, combinar las instancias o reconducir este
  #2 (permalink)  
Antiguo 07/10/2013, 17:37
 
Fecha de Ingreso: noviembre-2005
Mensajes: 889
Antigüedad: 19 años, 1 mes
Puntos: 8
Respuesta: Combinar Script o partes

He comprobado la funcionalidad de este script, con independencia del número de condicionales que le pongas:

Código:
$DomDocument = new DOMDocument();
$DomDocument->preserveWhiteSpace = false;
$DomDocument->load('http://www. web site .com/index.php?option=com_xmap&view=xml&tmpl=component&id=1');
$DomNodeList = $DomDocument->getElementsByTagName('loc');

foreach($DomNodeList as $url) {
$urls[] = $url->nodeValue;
}
if(in_array("http://www. web site .com/fram",$urls)){
$css= '<link href="/css/link-a.css" rel="stylesheet" type="text/css" />';
}
echo $css;
if(in_array("http://www. web site .com/destinos",$urls)){
$css= '<link href="/css/link-b.css" rel="stylesheet" type="text/css" />';
}
echo $css;
if(in_array("http://www. web site .com",$urls)){
$css= '<link href="/css/link-c.css" rel="stylesheet" type="text/css" />';
}
echo $css;
?>

Lo que querría que me dijese alguien es si existe alguna forma de comprimir o hacer este código más compacto, como ocurre en css o javascript por agrupación de elementos.

Lo que pienso es que no es posible, pero lo voy a preguntar por si existiese alguna forma.

El caso es que se trata de añadir un número ciertamente importante de condicionales y ello va a suponer una carga de código considerable.

Aunque el script funcione, yo creo que el tamaño también importa (en este caso de php se entiende).

Etiquetas: combinar, partes
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 22:14.