Foros del Web » Programando para Internet » PHP »

Cómo leer una página y tomar valores encerrados en tags?

Estas en el tema de Cómo leer una página y tomar valores encerrados en tags? en el foro de PHP en Foros del Web. Hola chicos. Alguien me podría decir cómo puedo, desde PHP, leer una página web (mediante URL) y tomar datos de entre sus tags? Intento indexar ...
  #1 (permalink)  
Antiguo 18/06/2005, 16:06
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
Cómo leer una página y tomar valores encerrados en tags?

Hola chicos.
Alguien me podría decir cómo puedo, desde PHP, leer una página web (mediante URL) y tomar datos de entre sus tags?

Intento indexar noticias RSS de un sitio amigo.

Planeo leer una página y, mediante explodes, sacar el contenido de los tags <title> e <item>.

desde ya, muchas gracias =)
  #2 (permalink)  
Antiguo 19/06/2005, 03:39
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 3 meses
Puntos: 0
Este ejemplo creo q te ira bien, un saludo.

Código PHP:
<form method="post">
<input type="text" name="url" value="http://">
<input type="Submit" value="Ver código">
</form>
<?
if ($_POST['url']== "http://"){
    echo 
"Por favor rellena la url";
}else if (
$_POST['url']==""){
    echo 
"Debes incluir el http://";
}else{
    
$fichero=fopen($_POST['url'],'r');
    if (
$fichero)
    {
    
$string ="";
    while (!
feof($fichero)){
            
$string .=fgets($fichero,512);
    }
echo 
"<textarea cols='80' rows='30'>";
echo 
$string;
echo 
"</textarea>";
    }else{
        echo 
"No se ha podido habrir el fichero";    
    }
}
?>
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #3 (permalink)  
Antiguo 19/06/2005, 13:23
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
muchas gracias.. realmente bueno ese script.. he aprendido mucho gracias a él =)

pero bueno, tengo problemas con el explode =( ya que no puedo obtener el contenido de entre <tag> y </tag>

conocés alguna otra funcion de PHP en la cual se pueda indicar el principio y el final y así leer facilmente los tags???
  #4 (permalink)  
Antiguo 19/06/2005, 16:19
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 3 meses
Puntos: 0
Hombre podrias hacer alguna expresion regular (es mas, creo q seria la mejor opcion) para sacar lo q haya entre los 2 tags, a ver si alguno q lo controle mas puede echarte una mano ya q yo el tema de las expresiones soy un negao :(

Un saludo.
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
  #5 (permalink)  
Antiguo 19/06/2005, 17:30
Avatar de nachopro  
Fecha de Ingreso: noviembre-2003
Ubicación: Haedo, Bs. As.
Mensajes: 290
Antigüedad: 20 años, 4 meses
Puntos: 2
lo que se me ocurrió

Bueno, esto es lo que implementé. Sé que no es lo óptimo. A ver si alguien puede aportar algo mejor ;)

Código PHP:
<?php
$url
=fopen("URL DEL ARCHIVO RSS""r");
if (
$url) {
    
$texto ="";
    while (!
feof($url)){
        
$texto .=fgets($url,512);
    }
    
$texto str_replace("<item>""*ite*"$texto);
    
$texto str_replace("</item>""*ite*"$texto);
    
$txt explode("*ite*"$texto);
    for (
$i 1$i 9$i $i 2) { // acá $i + 2 para evitar mostrar una noticia inexistente entre un tag </item> e <item> (recuerden que ahora se llaman por igual *ite* =P
// el $i < 9 << reemplacen el 9 por la cantidad de noticias que quieren mostrar x 2 + 1 =P
// si quieren mostrar 4 (como en el ejemplo: 4*2+1 = 9 ;)
        
$texto $txt[$i];
        
$texto str_replace("<title>""*tit*"$texto);
        
$texto str_replace("</title>""*tit*"$texto);
        
$texto str_replace("<link>""*lnk*"$texto);
        
$texto str_replace("</link>""*lnk*"$texto);
        
$nom explode('*tit*'$texto);
        
$lnk explode('*lnk*'$texto);
        echo 
"<p>".$nom[1]."<br>".$lnk[1]."</p>\n";
        }
} */
?>
Con este script pueden listar noticias RSS de un sitio en el suyo ;)

espero que les guste y que los que saben lo optimizen así se publica en la FAQ PHP

saludos
  #6 (permalink)  
Antiguo 20/06/2005, 01:29
 
Fecha de Ingreso: diciembre-2003
Mensajes: 218
Antigüedad: 20 años, 3 meses
Puntos: 0
Una cosa, las RSS no estan echas en XML¿? Por q no usas herramientas para parsear el fichero¿? Seguro q son mas optimas q tratar el fichero en cada str_replace.

Echa un vistazo por aki.
http://php.grn.es/manual/es/ref.xml.php
__________________
SymbianForever
SymbianForever.com, todo sobre y para tu symbian
aNieto2K | Themes para WordPress
De todo un poco
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:14.