Aller au contenu

Expression reguliere le retour :o)


Sujets conseillés

Posté

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

Posté

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.

Veuillez vous connecter pour commenter

Vous pourrez laisser un commentaire après vous êtes connecté.



Connectez-vous maintenant
×
×
  • Créer...