Aller au contenu

PHP & GD


AllForEver

Sujets conseillés

Bonjour,

Je n'arrive pas à supprimer les quotes dans mes images générée avec imagettftext... :angry:

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 :

secteur_6.png

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. :nono:

J'ai même essayé de passer les quotes en UTF-8 mais ça change rien au problème. :evil:

Lien vers le commentaire
Partager sur d’autres sites

As-tu affiché les variables $L1, $L2 après le stripslashes ?

Parce que si elles ont des doubles backslashes, il en reste un ;)

Lien vers le commentaire
Partager sur d’autres sites

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. ;)

region_8.png

Lien vers le commentaire
Partager sur d’autres sites

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.

Lien vers le commentaire
Partager sur d’autres sites

Posté (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é par AllForEver
Lien vers le commentaire
Partager sur d’autres sites

Veuillez vous connecter pour commenter

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



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