Foros del Web » Programando para Internet » PHP »

Descargar Manual PHP en XML

Estas en el tema de Descargar Manual PHP en XML en el foro de PHP en Foros del Web. Que tal a todos. ¿ Alguien sabe donde o como, descargar el Manual Oficial de PHP en español , pero en XML ? Como pueden ...
  #1 (permalink)  
Antiguo 18/02/2007, 20:17
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Descargar Manual PHP en XML

Que tal a todos.

¿ Alguien sabe donde o como, descargar el Manual Oficial de PHP en español , pero en XML ?

Como pueden ver en http://cvs.php.net/viewvc.cgi/phpdoc-es/ esta el Manual de PHP en XML, pero considero una lata bajar apendice y capitilo por parte (estimo que deben ser 5909 ficheros (como la version html suelta ) ).

La necesito en formato XML, ya que de esta forma seria muy facil ( para mi y para todos) intergrarla a nuestro sitio (sin perder el formato de nuestra web), o insertarla en una bd, etc etc ... inclusive mi idea es comprimir todo en un fichero gzip , luego segun el xml que se pida se extrae y se lee (si lo se, es sobrecargar el CPU, pero total el hosting es de paga y tengo poco espacio xD ).

Me imagino que debe estar el enlace en alguna parte para descargar todos los XML juntos, o alguien los debe tener.

Si no tendre que bajar uno por uno los XML ... o comenzar a parsear los ficheros html


Me disculpo, Si es que esta el enlace directo a descargar todos los XML (no lo veo realmente ).
  #2 (permalink)  
Antiguo 28/02/2007, 20:02
Avatar de DeeR  
Fecha de Ingreso: diciembre-2003
Ubicación: Santiago
Mensajes: 520
Antigüedad: 20 años, 4 meses
Puntos: 17
Re: Descargar Manual PHP en XML

* Posteo simplemente solo si alguien en el futuro tiene la misma duda, y no ha encontrado solucion :P :P

Bueno , como no pude descargar el Manual en Español en formato XML , en el cvs ese , no estan todos los archivos buuu ...

No me quedo otra que Parsear cada documento HTML, quitar a lo menos la cabezera y pies, y solo dejar el contenido de almedio. Luego meter esos datos en un archivo simple xml que me servia para mis propositos.

Código PHP:
<?
// Vamos a Parsear Contenido HTML
// ********************************************************
// Tiempo de Ejecucion
$mtime microtime();
$mtime explode(" ",$mtime);
$mtime $mtime[1] + $mtime[0];
$tiempoinicial $mtime;
// ********************************************************
$ruta='C:\\Programas\\Internet\\EasyPHP1-8\\www\\php\\html\\';
$dir=dir($ruta);
$j=0;


function 
generarxml($archivo,$datos)
{
     
$archivo=str_replace(".html",".xml",$archivo);
     
$datos['articulo']=str_replace("&","&amp;",$datos['articulo']);    
    
$datos['articulo']=str_replace("<","&lt;",$datos['articulo']);
    
$datos['articulo']=str_replace(">","&gt;",$datos['articulo']);
    
$datos['articulo']=str_replace("'","&apos;",$datos['articulo']);        
    
$datos['articulo']=str_replace('"',"&quot;",$datos['articulo']);        
    
    
    
    
    
$xml='<?xml version="1.0" encoding="iso-8859-1"?>
<channel>
<titlemain>'
.utf8_decode($datos["titulo"]).'</titlemain>
<language>es-cl</language>
<autor>http://deerme.org</autor>
<home_title>'
.utf8_decode($datos["home"]["title"]).'</home_title>
<home_url>'
.utf8_decode($datos["home"]["url"]).'</home_url>
<up_title>'
.utf8_decode($datos["up"]["title"]).'</up_title>
<up_url>'
.utf8_decode($datos["up"]["url"]).'</up_url>
<prev_title>'
.utf8_decode($datos["prev"]["title"]).'</prev_title>
<prev_url>'
.utf8_decode($datos["prev"]["url"]).'</prev_url>
<next_title>'
.utf8_decode($datos["next"]["title"]).'</next_title>
<next_url>'
.utf8_decode($datos["next"]["url"]).'</next_url>
<apex>'
.utf8_decode($datos["apendice"]).'</apex>
<description><![CDATA['
.utf8_decode($datos["articulo"]).']]></description>
</channel>'
;

    
// Generamos el Archivo
    
$ruta='C:\\Programas\\Internet\\EasyPHP1-8\\www\\php\\xml\\';

    if (
$file fopen($ruta.$archivo,  "w"))
    { 
        
fputs($file$xml);    
           
fclose($file); 
    }  





}





while ( 
$elemento $dir->read() )
{    
     
// Evitamos el . y ...
    
if ( ($elemento != '.') and ($elemento != '..'))
    {
         
        if ( 
is_file($ruta.$elemento) )
        {   
            
$leer fopen($ruta.$elemento,"r"); 
            
$i='0';
        
            while( !
feof($leer) )
            {
                
$texto $texto fgets($leer,4096);
                
$i++;
            }
            
fclose($leer);

            
            
$texto=str_replace("\n"," ",$texto);
            
$texto=str_replace("\r"," ",$texto);
            
            
            
            
//**************
            // Titulo
            
if (eregi("<TITLE >(.*)</TITLE >"$texto$title))
            {
                
$archivo['titulo']= $title[1];
                
$is_title true;
                
            }
            
//**************
            // Home         
            // <LINK REL="HOME" TITLE="Manual de PHP" HREF="index.html">
            
if ( preg_match('|<LINK REL="HOME" TITLE="(.*?)" HREF="(.*?)">|is'$texto$title) )
            {
                 
$archivo['home']['title']=$title[1];
                
$archivo['home']['url']=$title[2];    
            }
            
// UP            
            // <LINK REL="UP" TITLE="Sobre el manual" HREF="about.html">
            
if ( preg_match('|<LINK REL="UP" TITLE="(.*?)" HREF="(.*?)">|is'$texto$title) )
            {
                 
$archivo['up']['title']=$title[1];
                
$archivo['up']['url']=$title[2];    
            }
            
// Prev            
            // <LINK REL="PREVIOUS" TITLE="Como ayudar a mejorar la documentación" HREF="about.howtohelp.html">
            
if ( preg_match('|<LINK REL="PREVIOUS" TITLE="(.*?)" HREF="(.*?)">|is'$texto$title) )
            {
                 
$archivo['prev']['title']=$title[1];
                
$archivo['prev']['url']=$title[2];    
            }
            
// Next           
            // <LINK REL="NEXT" TITLE="Traducciones" HREF="about.translations.html">
            
if ( preg_match('|<LINK REL="NEXT" TITLE="(.*?)" HREF="(.*?)">|is'$texto$title) )
            {
                 
$archivo['next']['title']=$title[1];
                
$archivo['next']['url']=$title[2];    
            }
            
            
            
// Apendice
            // <TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >Apéndice R. Sobre el manual</TD >
            
if ( preg_match('|<TD WIDTH="80%" ALIGN="center" VALIGN="bottom" >(.*?)</TD >|is'$texto$title) )
            {
                 
$archivo['apendice']=$title[1];
                    
            }
            
// Cuerpo del Mensaje
            // <H1 ...... </DIV ><DIV CLASS="NAVFOOTER" >
            
if ( preg_match('|<H1 >(.*?)</DIV ><DIV CLASS="NAVFOOTER" >|is'$texto$title) )
            {
                 
$archivo['articulo']=$title[1];
                 
$archivo['articulo']=str_replace('</DIV ><DIV CLASS="NAVFOOTER" >','',$archivo['articulo']);
                    
            }
            elseif ( 
preg_match('|<H1 CLASS="sect1" >(.*?)</DIV ><DIV CLASS="NAVFOOTER" >|is'$texto$title)  )
            {
                 
$archivo['articulo']=$title[1];
                 
$archivo['articulo']=str_replace('</DIV ><DIV CLASS="NAVFOOTER" >','',$archivo['articulo']);
            }
            elseif (  
preg_match('|<HR ALIGN="LEFT" WIDTH="100%">(.*?)<HR ALIGN="LEFT" WIDTH="100%">|is'$texto$title)  )
            {
                 
$archivo['articulo']=$title[1];
            }
            
//print_r($archivo);
            
generarxml($elemento,$archivo);
            

                
        }            

        

        
        
        
        
                        
    }
    
$texto="";
    
$j++;
}

        



// ******* Estadistica
$mtime microtime();
$mtime explode(" ",$mtime);
$mtime $mtime[1] + $mtime[0];
$tiempofinal $mtime;
$tiempototal = ($tiempofinal $tiempoinicial);
echo 
$tiempototal;
// ********************************************************    
        




?>
Lo cual crea XML con el Formato
Código:
<?xml version="1.0" encoding="iso-8859-1"?>
<channel>
<titlemain>Como encontrar más información sobre PHP</titlemain>
<language>es-cl</language>
<autor>http://deerme.org</autor>
<home_title>Manual de PHP</home_title>
<home_url>index.html</home_url>
<up_title>Sobre el manual</up_title>
<up_url>about.html</up_url>
<prev_title>Versiones de PHP documentadas en este manual</prev_title>
<prev_url>about.phpversions.html</prev_url>
<next_title>Como ayudar a mejorar la documentación</next_title>
<next_url>about.howtohelp.html</next_url>
<apex>Apéndice R. Sobre el manual</apex>
<description><![CDATA[&amp;lt;A NAME=&quot;about.more&quot; &amp;gt;Como encontrar más información sobre PHP&amp;lt;/A &amp;gt;&amp;lt;/H1 &amp;gt;&amp;lt;P &amp;gt;&amp;#13;   Este manual no pretende explicar practicas generales de    programación. Si vas a empezar a programar ó eres un    programador principiante, seguramente tendras dificultades para    aprender a programar en PHP usando solamente este manual. Te    será de gran ayuda utilizar otros textos más    orientados a principiantes. Una lista con libros sobre PHP puede    encontrarse en &amp;lt;A HREF=&quot;http://www.php.net/books.php&quot; TARGET=&quot;_top&quot; ]]></description>
</channel>
Lo cual de manera local, se demoro a lo menos 153 Segundos en parsear 5000 Archivos HTML y crear 5000 Archivos XML simples con esa estructura que defini :P, con lo cual pude crear mi objetivo lo cual era Insertar el Manual de PHP sin perder el Formato dentro de mi Sitio Web.

Saludos y ojala a alguien le sirva alguna vez la duda que yo tube hace varios dias atras. Muaks
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

SíEste tema le ha gustado a 1 personas (incluyéndote)




La zona horaria es GMT -6. Ahora son las 14:44.