Foros del Web » Programando para Internet » PHP »

Como puedo plantear este problema con PHP y XML

Estas en el tema de Como puedo plantear este problema con PHP y XML en el foro de PHP en Foros del Web. Buenas compañeros: Llevo un tiempo utilizando un script muy sencillito para dependiendo de en que apartado de la página se encuentre me muestre un titulo ...
  #1 (permalink)  
Antiguo 25/11/2010, 04:44
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 16 años, 6 meses
Puntos: 11
Como puedo plantear este problema con PHP y XML

Buenas compañeros:
Llevo un tiempo utilizando un script muy sencillito para dependiendo de en que apartado de la página se encuentre me muestre un titulo (meta title) u otro.
Las direcciones en mi página son de este estilo:
index.php?option=content&id=1
index.php?option=content&id=2
.
.
.
index.php?option=contact&id=1

Es decir la option es el tipo de página (componente) y luego las id's de cada apartado.

Antes tenia esto:
codigo xml:
Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<wrapper>
	<content_default>
		<title><![CDATA[TITULO]]></title>
	</content_default>
	<content option="content">
		<layer id="1">
			<title><![CDATA[TITULO]]></title>
		</layer>
		<layer id="2">
			<title><![CDATA[TITULO]]></title>
		</layer>
		<layer id="3">
			<title><![CDATA[TITULO]]></title>
		</layer>
		<layer id="4">
			<title><![CDATA[TITULO]]></title>
		</layer>
		<layer id="5">
			<title><![CDATA[TITULO]]></title>
		</layer>
	</content>
	<content option="contact">
		<layer id="1">
			<title><![CDATA[TITULO]]></title>
		</layer>
	</content>
</wrapper>
y el script PHP:
Código PHP:
function showTitle(){
    
$title;
    if(
file_exists("includes/header.xml")){
        
$xml=simplexml_load_file("includes/header.xml");
    } else {
          exit(
'Error al abrir el .xml de contenido');
    }
    foreach(
$xml->content as $content){
        switch(
$_REQUEST['option']){
            case 
$content['option']:    foreach($content->layer as $layer){ 
                                            switch(
$_REQUEST['id']){
                                                case 
$layer['id']:    $title=$layer->title;
                                                                    return 
$title;
                                                                    break;
                                            }
//switch
                                        
}//foreach
                                        
break;
            default:    if(!isset(
$_REQUEST['option'])) {
                            
$title=$xml->content_default->title;
                            return 
$title;
                            break;
                        }
        }
//switch
    
}//foreach


Pero ahora quiero compactar un poco el codigo XML de este modo:
Código:
<wrapper>
	<meta option='default' title='TITULO' />
	<meta option='content' id='1' title='HOLA CARACOLA' />
</wrapper>
Y cuando se trata de los atributos de XML no se como pasarlos dependiendo la dirección que haya. Es decir yo quiero que si estas en la option content e id 1 coja ese titulo, pero aqui me pierdo de formas que no se ni como plantearlo :(


Espero puedan ayudarme porque no solo me serviría para este codigo , creo que hay un concepto de como manejar el xml que no se como hacerlo y me serviría para mil cosas si es posible lo que creo.
  #2 (permalink)  
Antiguo 25/11/2010, 05:29
 
Fecha de Ingreso: octubre-2007
Mensajes: 118
Antigüedad: 16 años, 6 meses
Puntos: 11
Respuesta: Como puedo plantear este problema con PHP y XML

Autorespondo para que se vea que lo he conseguido solucionar:
Código PHP:
foreach($xml->meta as $meta){
        if(isset(
$_REQUEST['option'])    &&    $_REQUEST['option']    ==    $meta['option']){
            if(
$_REQUEST['id']    ==    $meta['id']){
                
$title=$meta['title'];    
            }
        }
    }
    if(empty(
$title)) $title=$xml->meta['title'];
    return 
$title
No era la idea que llevaba , porque no queria tirar de tanto condicional , creo que tiene que haber algun modo mejor de hacerlo y poder manejar mejor el xml , pero de momento me sirve.
Si encontrais algun modo mas óptimo proximo a lo que busco , echarme un cable :D

Etiquetas: xml
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 16:20.