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:
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)