PHP - preg_match_all - afinar expresión regular

 
Vista:

preg_match_all - afinar expresión regular

Publicado por Nelson (1 intervención) el 01/05/2012 02:27:08
Hola estimados... luego de bastante tiempo acudo a uds luego de navegar y leer y seguir con el problema.

Estoy tratando de extraer los links de un feed con preg_match_all (no pude parsear con simplexml_load_file por el desorden) y resulta que lo que necesito es solamente extraer los links que comiencen con una url determinada.

Ejemplo:
http://juanito.perez.com/solucion/ayuda?1.php
http://juanito.perez.com/consultas/consultas?44.php
http://otraweb.com/problema/ayuda?23.php

extraer solo urls que comiencen por "http://juanito.perez.com/solucion/"... en este caso el output sería: http://juanito.perez.com/solucion/ayuda?1.php

Sé que necesito depurar el patron del script de abajo pero aún no doy con el indicado..

1
2
3
4
5
6
7
8
9
10
<?php
// retrieve link destinations 
function get_a_href($file){
    $h1count = preg_match_all('/(href=")(.*?)(")/i',$file,$patterns);  // depurar el patron
    return $patterns[2];
}
$file = file_get_contents("http://juanito.perez.com/");
$x = (get_a_href($file));
print_r($x);
?>

Alguna ayuda pleasee
Gracias!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de xve
Val: 3.943
Oro
Ha mantenido su posición en PHP (en relación al último mes)
Gráfica de PHP

preg_match_all - afinar expresión regular

Publicado por xve (6935 intervenciones) el 01/05/2012 18:09:06
Hola Nelson, no entiendo muy bien como porque devuelves en la función el 3 valor (return $patterns[2];)... prueba a devolver el array entero (return $patterns;), ya que solo hay una o dos coincidencias, nunca visualizaras el resultado...

Coméntanos, ok?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar