Foros del Web » Programando para Internet » PHP »

preg_match_all - afinar expresión regular

Estas en el tema de preg_match_all - afinar expresión regular en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 30/04/2012, 18:38
 
Fecha de Ingreso: abril-2012
Mensajes: 1
Antigüedad: 12 años, 6 meses
Puntos: 0
Busqueda preg_match_all - afinar expresión regular

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..

Código PHP:
<?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!!
  #2 (permalink)  
Antiguo 26/12/2012, 14:02
Avatar de JorM  
Fecha de Ingreso: diciembre-2012
Ubicación: Argentina
Mensajes: 53
Antigüedad: 11 años, 10 meses
Puntos: 2
De acuerdo Respuesta: preg_match_all - afinar expresión regular

Cita:
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
Si quieres que solo extraiga los Links que empiezan con "http://juanito.perez.com/solucion/" podría ser asi:

Código PHP:
Ver original
  1. <?php
  2. $str = '
  3. http://juanito.perez.com/solucion/ayuda?1.php
  4. http://juanito.perez.com/consultas/consultas?44.php
  5. http://otraweb.com/problema/ayuda?23.php
  6. http://juanito.perez.com/solucion/ejemplo.php
  7. http://juanito.perez.com/solucion/ejemplo2?var1=1&var2=2.php';
  8.  
  9. $expr = '#http:\/\/juanito\.perez\.com\/solucion\/.+\.php#'; //EXPRESION
  10. $mCount = preg_match_all($expr,$str,$arrMatches);
  11. foreach($arrMatches[0] as $values){
  12.   echo $values.'<br/>';
  13. }
  14. ?>

lo he probado y funciona.
Espero te sirva!!
Saludos!

Etiquetas: expresiones, preg_match_all, regulares
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 13:06.