Lentreprenaute Posté 17 Mai 2004 Posté 17 Mai 2004 Bonsoir, une ptit soucis, j'aimerai rajouter dans cette fonction: <img class="XXX" .... et pouvoir ressortir comme ca $class = $matches[XX][$i]; dans le traitement suivant : $reg = "/<img src='IMG\/([^']+)' ?([^ ]+) width=[^ ]+ ?([^ ]+) height=[^ ]+ ([^>]+)>/"; preg_match_all ($reg, $string, $matches); $to_return = $string; for ($i=0; $i< count($matches[0]); $i++) { $img = $matches[1][$i]; $bef = $matches[2][$i]; $aft = $matches[4][$i]; $btw = $matches[3][$i];.... pour pouvoir le ressortir ici .....img class= ".$class."...... $to_return = preg_replace("<".$matches[0][$i].">",$before."<img src='IMG/".$img."' ".$size." ".$bef." ".$btw." ".$aft." >".$after, J'espere que je suis clair?? moi et les expressions regulieres
valdo Posté 18 Mai 2004 Posté 18 Mai 2004 faut que tu nous expliques ton code avant de nous parler d'expressions regulieres. car d'une part je ne vois pas de fonction (tu sais "function" dans php). d'autre part je vois pas trop ce que tu dois mettre dans tes variables $img, $btw, $bef, $aft, et pis que viennent faire tes espaces dans ta balise <img /> ? Normalement une URL Apache ne doit pas contenir d'espaces. il faudrait que tu remplace les espaces par autre chose genre un tiret. ensuite (et la je crois avoir compris), je pense que tu dois faire mention du bout de chaine <img dans ton expression reguliere du preg_replace. Et puis n'oublie pas non plus que le slignes doivent etre traitees une a une. si tu fais pas la modification des ligne sune par une, tu risques de te planter, auquel cas je pense qu'il faut que tu fasses un foreach pour le replace (sachant bien sur que tes matches auront ete places dans un tableau). sinon tu peux aussi essayer de parser l'html source avec dom et d'aapliquer une feuille xslt qui va convertir tes img (cela implique que l'html source soit bien forme, cad valide) Valdo.
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant