Prob expression reguliere

Répondre
allserv
le 21/08/2004 à 12:07
allserv
Bonjour @ tous,

Voilà, debutant dans les expressions regulières, j'aurais besoin de votre aide pour un prob de bbcode, au depart dans la ligne suivante, je n'avais pas l'attribut [taille=([:digit:]+)], elle permettait de mettre une image dans mon texte, tout fonctionnait impec :

$texte = preg_replace("'\[img]\[taille=([:digit:]+)](.*?)\[/img]'","<img src=\"$2\" width=\"$1\">",$texte);


Cependant, j'ai voulu rajouter l'attribut taille qui spécifie la largeur de l'image, mais ca ne fonctionne plus... Je vois pas où peut etre l'erreur ?

Merci d'avance
kronemburg
le 21/08/2004 à 15:02
kronemburg
désolé, regarde ma signature ^^smiley cependant cete discution m'interresse bien ;o)
Kro kro kro kronemburg
mojorisin
le 21/08/2004 à 15:14
mojorisin
Tiens :
$texte = preg_replace("'\[img]\[taille=(\d+)](.*?)\[/img]'","<img src=\"$2\" width=\"$1\">",$texte);

le [:digit:] ne fonctionne qu'avec les regexp posix.
echo ’16i[q]sa[ln0=aln100%Pln100/snlbx]sbA0D4D465452snlbxq’|dc
allserv
le 21/08/2004 à 19:50
allserv
Merci de ton aide ca fonctionne a merveille, c'est quand meme bien pratique ces tites fonctions smiley
savageman
le 22/08/2004 à 12:11
savageman
Juste un truc: dans ton cas, l'image sera bien déformée a l'affichage si tu specifie que la largeur, car la hauteur restera la même ^^
Pour corriger ce probleme, tu foit faire un preg_replace_callback qui va dans un premier temps recupérer la taille actuelle de l'image via la fonction getimagesize() (qui fonctionne avec les urls depuis PHP 4.0.5). Ensuite, tu calcules la nouvelle hauteur en fonction des largeur et hauteur de l'image actuelle et de la largeur souhaitée (via un simple produit en croix).

En esperant avoir bien expliqué ^^

@+
allserv
le 22/08/2004 à 12:24
allserv
Bah je ne spécifie que la largeur et donc la hauteur est mis directement en fonction... j'ai fait un test, ca fonctionne... lol

Je retiens qd meme ta solution au cas où smiley
kronemburg
le 22/08/2004 à 15:40
kronemburg
arf je pensai pas que ça fonctionnait, j avait meme pas pensé !!! c chelou, moi ki me cassait la tete avec mes getimagesize() et tout !!!smiley
Kro kro kro kronemburg
Répondre

Ecrire un message

Votre message vient d'être créé avec succès.
LoadingChargement en cours