Cita:
Iniciado por pateketrueke al delimitar con ^ y $ quiere decir que la cadena a comparar debes ser precisa, que empiece y termine tal cual dicta la expresión... lo cual, en tu caso es erróneo
si buscas solo enlaces, buscar por href me pareció mas correcto
Gracias Pateketrueke lo he mejorado un poquillo
$res=preg_match_all('/href="([^" | ^\']+)"/isU',file_get_contents($url),$retorno);
Pero aún así necesito que me devuelva los enlaces que quiero no todos, es decir los enlaces que por ejemplo lleven la palabra "casa" , tipo:
http`://www.loquesea/unacosamas/casa/
Por muchas vueltas que doy no se como narices hacerlo.
He probado también así:
$res=preg_match_all('/href="([^" | ^\']+)\/casa\/"/isU',file_get_contents($url),$retorno);
Pero nada de nada , me devuelve un array vacío totalmente.
Tampoco entiendo el significado de la U ¿codicia? ¿que es eso?.
# U - Modificador que invierte la codicia de las expresiones regulares. Fuente: http://www.php-hispano.net/archivos/...egulares1.html
Haciendo esto consigo todas las urls de una página:
$res=preg_match_all('/href="([^" | ^\']+)\/casa\/(.+)"/isU',file_get_contents($url),$retorno);
Pero ahora me gustaría poder
filtrar los resultados de una vez lo máximo posible para optimizar el tema y que no recoja todas sino las que lleven como antes decía la palabra "casa", por que lo que no comprendo es porque además de devolverme dichos enlaces (los que tienen la palabra casa), me devuelve otros muchos strings, es como si los cortara y me los devolviera enteros los enlaces y cortados, por ejemplo:
href="
http://www.miweb.com/casa/5-plantas/" y también me devuelve
5-plantas/, si yo ahora qusiera que no me devolviera esto último 5-plantas/ ¿como tendría que esribir la expresión regular?. Por otro lado también me devuelve el href , pero supongo que esto tedré que eliminarlo con funciones de strings de PHP ¿o se puede decir que no me lo devuelve también en la expresión regular?
Esto de las expresiones regulares está claro que necesita mucha práctica , por eso quiero hacer ejercicios hasta hartarme.
Un saludo y gracias .