Ver Mensaje Individual
  #3 (permalink)  
Antiguo 09/10/2011, 12:58
Avatar de andresdzphp
andresdzphp
Colaborador
 
Fecha de Ingreso: julio-2011
Ubicación: $this->Colombia;
Mensajes: 2.749
Antigüedad: 13 años, 4 meses
Puntos: 793
Respuesta: Buscar primer imagen de post.

Hola catoszyrko, tienes que usar el signo ? para que te coja la primera imagen y no se vaya del principio de la primera hasta el final de la última:

Fijate aquí .*?

Código PHP:
Ver original
  1. <?php
  2. $data = '<img src="myimage.jpg" title="title" alt="alt"> <img src="myimage2.jpg" title="title" alt="alt">';
  3. $pattern = "/src=[\"']?([^\"']?.*?(png|jpg|gif))[\"']/i";
  4. preg_match($pattern, $data, $images);
  5. echo $images[1];

también puedes hacer algo así, que captura todo lo que esté entre las comillas del src

Código PHP:
Ver original
  1. <?php
  2. $data = '<img src="myimage.jpg" title="title" alt="alt"> <img src="myimage2.jpg" title="title" alt="alt">';
  3. $pattern = '@src="(.*?)"@i';
  4. preg_match($pattern, $data, $images);
  5. echo $images[1];

Pásate por este aporte: http://www.forosdelweb.com/f18/aport...s-pcre-646110/

Ahora como propone kiko's

Así obtienes la primera imagen usando DOMDocument

Código PHP:
Ver original
  1. <?php
  2. $doc=new DOMDocument();
  3. $doc->loadHTML('<html><body>Test<br><img src="myimage.jpg" title="title" alt="alt"> </body></html>');
  4. $imgs = $doc->getElementsByTagName('img');
  5. echo $imgs->item(0)->attributes->getNamedItem('src')->nodeValue;

En caso de que el html tenga errores puedes usar por ejemplo la función libxml_use_internal_errors o repararlo con la clase Tidy etc...

Saludos.
__________________
Si sabemos como leer e interpretar el manual será mucho más fácil aprender PHP. En lugar de confiar en ejemplos o copiar y pegar - PHP