Version complète: sur le forum Webmaster Hub : PHP & GD
Webmaster Hub > Création et exploitation de Sites Internet > Les langages du Net > PHP
AllForEver
Bonjour,

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

Je met un coup de stripslashes sur mes variables mais il m'en remet une couche je ne sais pas trop où.

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

J'ai même essayé de passer les quotes en UTF-8 mais ça change rien au problème. evil.gif
Dan
As-tu affiché les variables $L1, $L2 après le stripslashes ?
Parce que si elles ont des doubles backslashes, il en reste un wink.gif
AllForEver
Bon, le souci est réglé, j'ai fait ceci :
CODE
    $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. smile.gif

Merci Dan. wink.gif

Anonymus
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
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
CODE
$ligne=$_POST['ligne'];

2) Appel de la fonction
CODE
image($ligne);

3) Traitement de $ligne par la fonction image() :
CODE
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 :
CITATION(nexen.net)
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. smile.gif
Ceci est une version "bas débit" de notre forum. Pour voir la version complète avec plus d'information, la mise en page et les images, veuillez cliquer ici.