AllForEver Posté 2 Mars 2005 Posté 2 Mars 2005 Bonjour, Je n'arrive pas à supprimer les quotes dans mes images générée avec imagettftext... Je met un coup de stripslashes sur mes variables mais il m'en remet une couche je ne sais pas trop où. $L1=stripslashes($ligne1); $L2=stripslashes($ligne2); $L3=stripslashes($ligne3);[...] imagettftext($image, $taille, 0, $xL1, $yL1, $gris, $font, $L1); imagettftext($image, $taille, 0, $xL2, $yL2, $bleu_clair, $font, $L2); imagettftext($image, $taille, 0, $xL3, $yL3, $bleu, $font, $L3); Au final, ça donne ça : Si quelqu'un pouvais m'indiquer comment m'en débarasser ; pour l'instant j'ai fait une fonction qui supprime les quotes mais c'est pas terrible niveau lecture de l'image. J'ai même essayé de passer les quotes en UTF-8 mais ça change rien au problème.
Dan Posté 2 Mars 2005 Posté 2 Mars 2005 As-tu affiché les variables $L1, $L2 après le stripslashes ? Parce que si elles ont des doubles backslashes, il en reste un
AllForEver Posté 2 Mars 2005 Auteur Posté 2 Mars 2005 Bon, le souci est réglé, j'ai fait ceci : $L1=stripslashes(stripslashes($ligne1)); $L2=stripslashes(stripslashes($ligne2)); $L3=stripslashes(stripslashes($ligne3)); Il y avait donc bien 2 backslashes... Je pensais que stripslashes nettoyait correctement la chaine de caractère, ce double stripslashes() fait un peu bricolage. Enfin, je vais pas chipoter, tout s'affiche comme je veut. Merci Dan.
Anonymus Posté 2 Mars 2005 Posté 2 Mars 2005 En fait, si tu as 2 slashes qui s'affichent, c'est probablement parce que tu as une fonction qui ajoutes 2 slashes. Ou plus probablement parce que tu ajoutes des slashes à une chaine qui en a déjà. Comment ? En fonction de la configuration du serveur, les variables passées d'une page à une autre peuvent se voir attribuées des slahes d'office. C'est probablement quelque chose du genre, auquel tu as affaire. Nico.
AllForEver Posté 2 Mars 2005 Auteur Posté 2 Mars 2005 (modifié) Déjà, il me semble que les magic_quotes doivent être à 'on'. Pour le fonctionnement de mon script, c'est très simple : 1) Réception des données du formulaire $ligne=$_POST['ligne']; 2) Appel de la fonction image($ligne); 3) Traitement de $ligne par la fonction image() : function image($ligne){ # Suppression des quotes stripslashes(stripslashes($ligne)); # Calcul de la taille $taille= imagettfbbox(18, 0, $font, $ligne); # Création de l'image [...] # Ecriture dans l'image imagettftext($image, 18, 0, $x, $y, $gris, $font, $ligne); # Enregistrement de l'image imagepng($image, $nom);} Ce serait donc à l'appel de la fonction que le deuxième slash est inséré automatiquement ? Et je viens de voir : stripslashes retourne une chaîne dont les anti-slash on été supprimés. \' devient ' , etc. Les doubles anti-slash sont réduits à un seul anti-slash. Ce qui explique le slash résiduel. Modifié 2 Mars 2005 par AllForEver
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant