Buenas tardes:
Estoy intentando obtener un enlace de una variable (que contiene mucha más información) usando Expresiones Regulares pero sinceramente no me da el resultado esperado. Me explico:
Tengo una variable que almacena una página web (si, he hecho una solicitud con cURL y ahora tengo el HTML de la web en una variable). De ahí quiero sacar la URL de una imagen, para lo cual he probado dos métodos:
1. Reemplazar toda la web por la cadena vacía "" excepto el link que necesito:
Código PHP:
Ver original$resultado = str_replace("<!DOCTYPE([.|\n]*)<img class=\"imageprod\" src=\"", "", $resultado); echo $resultado;
Como podéis ver el patrón empieza en el DOCTYPE (que es el inicio de la web) y llega hasta el src de la imagen (justo después se encuentra el enlace que quiero). Entre el DOCTYPE y el src de la imagen he utilizado la ER ([.|\n]*) que cubre cualquier carácter o salto de línea cero o más veces. Eso lo sustituyo por la cadena vacía y me quedo con la imagen (y lo que viene después, pero eso lo iliminaré con otro str_replace y un nuevo patrón, antes necesito que funcione este).
2. Obtener directamente el enlace:
Código PHP:
Ver originalpreg_match('http://www.pagina.com/recursos/imagenes/([\d|\w]*).jpg', $resultado, $coincidencias); echo $coincidencias[1];
En esta ocasión, como la imagen va estar siempre en la misma ruta, el patrón es dicha ruta. Al final utilizo ([\d|\w]*) porque el nombre es una serie de caracteres (números o letras) acabados en ".jpg". La búsqueda se realiza en la variable $resultado y se almacena en $coincidencias.
La petición cURL se hace correctamente, eso ya lo he comprobado, en la variable "$resultado" contiene la URL de la imagen que necesito. He revisado el manual oficial de ambas funciones, pero no encuentro dónde está el problema. A ver si me podéis eschar una mano.
Un saludo.