Problème avec preg_replace

arthezius Messages postés 3538 Date d'inscription   Statut Membre Dernière intervention   -  
prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Je suis en train de m'arracher les cheveux sur un morceau de code et je ne comprends pas d'où vient le problème.
Peut-être aurez-vous une idée d'où vient le problème.

Voici la portion de code qui pose problème:

function clear_img($img)
 {
 $pattern = array(
  '/\width="(.*?)"/is',
  '/\height="(.*?)"/is',
  '/\style="(.*?)"/is',
  );
 $replace = array(
  'class="preview_img_cat"',
  '',
  '',
  );
 
 $img = preg_replace($pattern, $replace, $img);
 return $img;
 }
$img[0]='<img style="float: right;" src="http://localhost/gouzy/files/1378044761_f22jfi73.png" alt="" width="150" height="141" />';

$img[0] = clear_img($img[0]);


L'idée étant de partir de la chaine:
<img style="float: right;" src="http://localhost/gouzy/files/1378044761_f22jfi73.png" alt="" width="150" height="141" />

et de la modifier en
<img src="http://localhost/gouzy/files/1378044761_f22jfi73.png" alt="" class="preview_img_cat" />


Malheureusement, en l'état, je reçois:
<img style="float: right;" src="http://localhost/gouzy/files/1378044761_f22jfi73.png" alt="" class="preview_img_cat" height="141" />

Les attributs style et height sont restés alors qu'ils ne devraient pas.
Je n'arrive pas à comprendre d'où vient mon erreur.

Le code de la chaîne à modifier provient de TinyMCE. Les valeurs sont donc susceptible de changer, d'où l'utilisation de preg_replace.

Merci par avance à ceux qui pourront m'aider.




« La recherche commence là où s'arrête la connaissance. »

1 réponse

prosthetiks Messages postés 1189 Date d'inscription   Statut Membre Dernière intervention   431
 
Tu as testé tes regexp ?

Edit: Après relecture de ton problème, oublie ce que je viens de dire. Test déja tes regexp et on regarde après pour la suite ^^
0