Prob expression reguliere
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
désolé, regarde ma signature ^^
cependant cete discution m'interresse bien ;o)
Kro kro kro kronemburg
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
Merci de ton aide ca fonctionne a merveille, c'est quand meme bien pratique ces tites fonctions
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é ^^
@+
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ù
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 !!!
Kro kro kro kronemburg
Ecrire un message
Votre message vient d'être créé avec succès.
BB-Code
Pour insérer une URL clickable
Pour insérer une adresse E-mail
Pour annoter
Pour écrire du code
Pour faire un lien vers une fonction PHP
Pour écrire du texte préformaté
Pour écrire du texte en gras
Pour écrire du texte en italique
Pour écrire du texte souligné
Pour écrire du texte barré
Pour écrire un titre principal
Pour écrire un titre secondaire
Pour écrire une liste
Smiley
:bond:
:boxe:
:bsmile:
:bump:
:clap:
:coeur:
:cool:
:cry:
:eek:
:evil:
:fleur:
:fou2:
:fou:
:grin:
:grrr:
:hammer:
:hippy:
:hum:
:idee2:
:idee:
:kdo:
:king:
:ko:
:lol:
:love2:
:love:
:mad:
:maitre:
:noel:
:oops:
:raa:
:razz:
:roll:
:sad:
:skull:
:smile:
:timide:
:trink:
:vice:
:vomi:
:wink:
:zzz: