Ranger une label d'image

J'ai cette label d'image que je reçois d'une source météo avec des erreurs, la sortie n'est pas html, mais wml / wap, donc il se bloque et brûle quand il apparaît. la balise d'image apparaît comme ceci:

<img alt="FACE="Monospace,Courier">LRPatches, Sky clear, Q1020</FONT><Mist, >" src="http://www.vremea.com/images/fogshow.gif" width="50" height="50"/> 

et j'aimerais que ce soit comme ceci:

 <img src="http://www.vremea.com/images/fogshow.gif" width="50" height="50"/> 

Je sais que je dois utiliser preg_replace mais je ne peux pas le faire fonctionner, des idées?

Ce :

 $imgTag = '<img alt="FACE="Monospace,Courier">LRPatches, Sky clear, Q1020</FONT><Mist, >" src="http://www.vremea.com/images/fogshow.gif" width="50" height="50"/>'; $returnValue = preg_replace('/(<img)(.*)(src.*)/', '$1 $3',$imgTag); 

Sortie:

 '<img src="http://www.vremea.com/images/fogshow.gif" width="50" height="50"/>' 

En supposant que votre label <img /> mal formée ne change pas.

Si le HTML a toujours le même problème de syntaxe, cela permettra de supprimer n'importe quoi entre <img et src= . Il est assez facile de se briser si la structure HTML change, mais comme elle a déjà été brisée …

 $html = preg_replace('/(?<=<img ).*?(?=src=)/', '', $horribleHorribleHTML); 

Il n'est pas testé, mais cela devrait le faire.

 <?php $sStr = '<img ... your image>'; // your ssortingng $iStart = strpos('src="', $sStr); // find the src $iEnd = strpos('"', $sStr, $iStart); // find the end $sURL = substr($sStr, $iStart, $iEnd); // get the image echo $sURL; ?> 

Vous pouvez essayer de faire correspondre les attributes que vous souhaitez save à partir de votre saisie, vous pouvez essayer d'get les pièces qui ressemblent d'abord à une label <img> , puis choisissez les éléments recherchés qui searchnt:

 $input = 'some other content <img alt="FACE="Monospace,Courier">LRPatches, Sky clear, Q1020</FONT><Mist, >" src="http://www.vremea.com/images/fogshow.gif" width="50" height="50"/> <span class="some"> more other content </span> <img alt="FACE="Monospace,Courier">LRPatches, Sky clear, Q1020</FONT><Mist, >" src="http://www.vremea.com/images/fogshow.gif" width="50" height="50"/> <span class="some"> more other content '; preg_match_all('/<img.+?\/>/sim', $input, $img_parts); foreach ($img_parts[0] as $img_part) { $attrs = array(); preg_match_all('/(?<key>src|width|height)\s*=\s*"(?<value>[^"]+)/i', $img_part, $m); foreach ($m['key'] as $i => $key) { $attrs[] = "{$key}=\"{$m['value'][$i]}\""; } print "<img ".join(' ', $attrs)." />\n"; }