Ver Mensaje Individual
  #1 (permalink)  
Antiguo 13/08/2004, 15:07
Avatar de Gerald
Gerald
 
Fecha de Ingreso: julio-2003
Mensajes: 1.356
Antigüedad: 20 años, 9 meses
Puntos: 2
Exclamación Generando xml desde PHP

Hola a Todos Compañeros, la verdad estoy creando un Weblog con un compañero y tengo problemas con las tildes.
Aqui va el codigo de mi funcion

Código PHP:
function crearRSS() {
  
    global $filename, $tituloweb, $url, $tema;

  $filename = strtolower(str_replace(' ', '', index)) . '.xml';

  if (file_exists($filename)) {
    @unlink($filename);
  }

  $handler = fopen($filename, 'w+');

  // Creamos las cabeceras para el RSS 
  $rssfile = "<?xml version="1.0\" encoding=\"iso-8859-1\"?>
<rdf:RDF xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\"
  xmlns=\"http://purl.org/rss/1.0/\">
   <channel rdf:about=\""
.$url."\">
      <title>"
.$tituloweb."</title>
      <link>"
.$url $filename ."</link>
      <description>
         Generado desde nuesta DB
         "
.$tituloweb." ".$tema."
      </description>
      <items>
         <rdf:Seq>\n"
;
  
/* Sacamos la informacion de las noticias con una consulta anidada */
  
$SQL_query mysql_query('SELECT e.id,e.autorid,e.fecha,e.titulo,e.intro,e.texto,a.nombre,a.idautor'
                           
' FROM entradas AS e'
                           
' LEFT JOIN autores AS a ON(e.autorid=a.idautor)'
                           
' ORDER by e.id DESC LIMIT 0, 10');

   while(
$noticias mysql_fetch_assoc($SQL_query))
  {
    
/* Set Variables */
    
$time $noticias['fecha'];
    
$titulo $noticias['titulo'];
    
$intro $noticias['intro'];
    
$nombre $noticias['nombre'];

    if (!
$nombre)
    {
      
$usuario $noticias['nombre'];
    }
    
/* Mostramos el link hacia cada articulo */
    
if ($noticias['texto'] != '')
    {
      
$enlace $url '?op=leer&amp;entrada=' $noticias['id'] . '';
    }
    else if (
$noticias['texto'] != '')
    {
      
$enlace $url '?op=leer&amp;entrada=' $noticias['id'] . '';
    }
    else
    {
      
$enlace $url;
    }

    
// Creamos la tabla de contenido
    
$rssfile .= "            <rdf:li resource=\"".$titulo."\" />\n";

        
// Creamos la <item> constructora para cada noticia
        
$items .= "   <item rdf:about=\"".$enlace."\">
      <title>"
.str_replace('&quot;''"'$titulo) ."</title>
      <link>"
.$enlace."</link>
      <description>
         $intro
      </description>
      <pubDate>"
.$time."</pubDate> 

   </item>\n"
;
  }

  
// Cerramos la tabla de contenido
  
$rssfile .= "         </rdf:Seq>
      </items>
   </channel>\n"
;

  
// Agregamos noticias por item
  
$rssfile .= $items;

  
// Creamos el pie del archivo de RSS
  
$rssfile .= "</rdf:RDF>\n";

  
// Pone la secuencia $rssfile en el archivo de RSS
  
if(!fputs($handler$rssfile))
  {
    echo 
"no se pudo crear el Rss";
  }

  
fclose($handler);
}
Hasta aqui todo bien pero me genera el xmlpero a la hora de querer abrirlo con el navegador me sale esto

The XML page cannot be displayed
Cannot view XML input using XSL style sheet. Please correct the error and then click the Refresh button, or try again later.


--------------------------------------------------------------------------------

Reference to undefined entity 'ordf'. Error processing resource 'http://localhost/blog2/index.xml'. Line 25, Position 121


<rdf:li resource="La 1&ordf; Campa&ntilde;a Mundial de Seguridad en la Red ayuda a luchar contra el spam" />


El Xml generado es este

Código:
<?xml version="1.0" encoding="iso-8859-1"?>

<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

  xmlns="http://purl.org/rss/1.0/">

   <channel rdf:about="http://localhost/blog/">

      <title>TLweblog</title>

      <link>http://localhost/blog/index.xml</link>

      <description>

         Generado desde nuesta DB

         TLweblog Aprendiendo Juntos

      </description>

      <items>

         <rdf:Seq>
            <rdf:li resource="Probando el BBCODE" />
            <rdf:li resource="La 1&ordf; Campa&ntilde;a Mundial de Seguridad en la Red ayuda a luchar contra el spam" />
         </rdf:Seq>

      </items>

   </channel>
   <item rdf:about="http://localhost/blog/?op=leer&amp;entrada=4">

      <title>Probando el BBCODE</title>

      <link>http://localhost/blog/?op=leer&amp;entrada=4</link>

      <description>

         La calidad nunca es un accidente; siempre es el resultado de un esfuerzo de la inteligencia
Este es un weblog que funciona muy bien pues :)

      </description>

	  <pubDate>13/8/2004</pubDate> 



   </item>
   <item rdf:about="http://localhost/blog/?op=leer&amp;entrada=2">

      <title>La 1&ordf; Campa&ntilde;a Mundial de Seguridad en la Red ayuda a luchar contra el spam</title>

      <link>http://localhost/blog/?op=leer&amp;entrada=2</link>

      <description>

         El spam o correo electr&oacute;nico se ha convertido es una de las m&aacute;s temibles amenazas de Internet. La proliferaci&oacute;n de mensajes publicitando todo tipo de art&iacute;culos ha llegado a tal extremo que, en este momento, suponen el 25% de la totalidad de los e-mails que se encuentran en circulaci&oacute;n.

      </description>

	  <pubDate>12/8/2004</pubDate> 



   </item>
</rdf:RDF>
En que estoy fallando o que debo hacer?

Ah por cierto al guardar las entradas las limpio asi
Código PHP:
$intro strip_tags(trim($_POST['intro']));
$texto strip_tags(trim($_POST['texto']));

//y despues realizo mi consulta a la db 
__________________
Solo por Hoy: Trataré de fortalecer mi mente. Estudiaré y aprenderé algo útil
Hoteldipity
Arte Caracol

Última edición por Gerald; 13/08/2004 a las 15:13