Foros del Web » Programando para Internet » PHP »

Obtener subcadena con Expersiones Regulares

Estas en el tema de Obtener subcadena con Expersiones Regulares en el foro de PHP en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 29/09/2014, 10:38
 
Fecha de Ingreso: abril-2009
Ubicación: En foros del web, normalmente en Web general, HTML y CSS.
Mensajes: 258
Antigüedad: 15 años, 8 meses
Puntos: 3
Obtener subcadena con Expersiones Regulares

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
  1. $resultado = str_replace("<!DOCTYPE([.|\n]*)<img class=\"imageprod\" src=\"", "", $resultado);
  2.         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 original
  1. preg_match('http://www.pagina.com/recursos/imagenes/([\d|\w]*).jpg', $resultado, $coincidencias);
  2.         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.
__________________
¿Por qué Anónimo?, porque como está el mundo no podemos considerarnos humanos...
  #2 (permalink)  
Antiguo 29/09/2014, 11:17
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años, 8 meses
Puntos: 2534
Respuesta: Obtener subcadena con Expersiones Regulares

Necesitas estudiar expresiones regulares, para eso hay un sob-foro adecuado.

Lo digo porque las expresiones que estás usando no son realmente lo que crees que son.
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: html, regulares, subcadena, variable
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 01:11.