Foros del Web » Programando para Internet » PHP »

Extraer valor de etiquetas html

Estas en el tema de Extraer valor de etiquetas html en el foro de PHP en Foros del Web. Hola buenas, queria saber si en php existe alguna funcion que haga esto. Necesito recorrer una página y estraer de ella todos sus enlaces, a ...
  #1 (permalink)  
Antiguo 29/10/2006, 04:04
 
Fecha de Ingreso: diciembre-2003
Mensajes: 204
Antigüedad: 20 años, 4 meses
Puntos: 2
Extraer valor de etiquetas html

Hola buenas, queria saber si en php existe alguna funcion que haga esto.

Necesito recorrer una página y estraer de ella todos sus enlaces, a donde apuntan i guardar el title si es que lo tienen.

Los enlaces ya los saco a mano (recorriendo el archivo hasta un <a y hasta el >siguiente) pero sacar los valores de los atributos de hay dentro puede ser algo mas liado.

Alguna idea?
  #2 (permalink)  
Antiguo 29/10/2006, 10:17
Avatar de emiliodeg  
Fecha de Ingreso: septiembre-2005
Ubicación: Córdoba
Mensajes: 1.830
Antigüedad: 18 años, 7 meses
Puntos: 55
busca expresiones regulares con eso vas a poder hacer lo q buscas
saludos
  #3 (permalink)  
Antiguo 29/10/2006, 11:00
 
Fecha de Ingreso: julio-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.304
Antigüedad: 18 años, 9 meses
Puntos: 6
Hola,

Recien de casualidad encontre este codigo en google, no se si funciona, pero seguramente te podra dar una idea de por que el amigo emiliodeg te nombra las expresiones regulares. Seguro tengas que modificarlo para lo que lo necesitas.

Código PHP:
<?php

function get_links($url){
$value file_get_contents($url);
preg_match_all('/<a [^>]*href=("[^"]*"|\'[^\']*\')[^>]*>/i'$value$match);
$urls =array_map(create_function('$a','return substr($a, 1, -1);'),$match[1]);
$total=count($urls);
//Comprobar que no estén repetidos
for($i=0;$i<$total;$i++){
echo 
$urls[$i].'<br>';
}
}

$url "http://www.laurlquequieras.com";
get_links($url);

?>

Saludos.
__________________
Federico.

Mi página: www.jourmoly.com.ar
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 18:18.