stavo tentando di personalizzare una funzione che, a partire da un contenuto html, cerca le immagini e ritorna l'url completo della "prima" (che poi servirà a creare un thumbnail). praticamente vorrei catturare non la prima immagine ma l'immagine con class="copertina" tra gli attributi.

praticamente il codice per ogni immagine del contenuto è questo:
codice:
dove dopo wp-image- il numero è variabile

e dentro il contenuto c'è appunto un'immagine di quel tipo ma con class="alignnone.. copertina"

la funzione originaria era questa:

codice:
function catch_that_image($child) {
  global $post, $posts;
  $first_img = '';
  ob_start();
  ob_end_clean();
  $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $child[0], $matches);
  $first_img = $matches [1] [0];

  if(empty($first_img)){ //Defines a default image
    $first_img = "/images/default.jpg";
  }
  return $first_img;
}
dove $child ha dentro un contenuto html con paragrafi, link, immagini..

quindi sto cercando di modificare il preg_match_all in questo modo:

codice:
$output = preg_match_all('/<img *class=["]alignnone size-thumbnail wp-image-[0-9]* copertina["].+src=[\'"]([^\'"]+)[\'"].*>/i', $child[0], $matches);
esempio:
- il contenuto ha due immagini, una normale seguita da una con classe "copertina"
- con il codice sopra, se stampo $first_img mi esce ancora l'url completo della prima immagine (non "copertina")
- stampando $matches per vederne il contenuto mi esce una roba tipo:
codice:
Array
(
    [0] => Array
        (
            [0] => </a> </p> 
        )
 
    [1] => Array
        (
            [0] => http://localhost/flautomagico/wp-con...02-150x150.jpg
        )
 
)
credo sia un errore nella sintassi dell'espressione regolare del preg_match (anche se non sono sicuro)

qualcuno saprebbe aiutarmi?
grazie (spero di essermi perlomeno spiegato bene)