Signe euro avec la libraire GD ?

Eléphant du PHP | 91 Messages

09 août 2008, 20:37

Hello,

Ya-il un moyen d'afficher le signe euro dans une image dynamiquement, en utilisant la librairie GD ?
Avec imagettftext(), j'arrive à afficher n'importe quel texte, seul le signe euro me pose problème.

Selon la police choisie, parfois un rectangle s'affiche au lieu du signe euro, parfois rien.

Ca m'embête plus qu'un peu, j'ai passé pas mal de temps pour pouvoir générer automatiquement une bannière pour chaque produit de ma boutique, et je viens juste de me rendre compte de ce problème, une fois que tout est quasi fini ...

Merci de votre aide.

Mammouth du PHP | 959 Messages

09 août 2008, 22:51

Sois tu trouves une police avec le signe euro inclue dedans (je te conseil dafont.com si tu connais pas) ou alors, si tu veux vraiment garder ta police, essaies de créer une image avec le € dedans et tu l'inclu avec imagecopymerge(), sinon, je ne serais quoi te proposer :? moi j'ai utilisé € dans une image avec imagettftext(), et ça marcher nickel, je pense que c'est la police...

Mammouth du PHP | 2937 Messages

10 août 2008, 17:39

Si tu utilises le codage ISO-8859-1, sache que ce codage n'inclut pas le symbole €. Pour pouvoir l'utiliser sans se casser la tête, le mieux est d'utiliser un codage plus approprié, comme l'ISO-8859-15 ou, mieux encore, l'UTF-8.

Eléphant du PHP | 91 Messages

12 août 2008, 18:05

Concernant la police, sous photoshop, elle semble prendre en compte le signe euro. Et puis j'ai essayé avec 2 ou 3 autres polices plus standard, sans résultat.

Concernant l'encodage, dans un code php, il n'y a pas d'encodage de défini ? Je doit le définir où cet encodage sinon ? Là c'est pas du texte récupéré d'une base, c'est du texte en dur dans le code.

Mammouth du PHP | 2937 Messages

12 août 2008, 23:26

Pour définir le codage du fichier PHP, c'est au niveau de ton éditeur. Par exemple, sous Notepad++ (de mémoire), tu sélectionnes Édition > Convertir en UTF-8 sans BOM.

Administrateur PHPfrance
Administrateur PHPfrance | 977 Messages

14 août 2008, 11:35

Après pas mal de recherche car j'étais confronté au même problème, j'ai trouvé cette fonction et ca fonctionne !
function eurofix($str) {
$euro=utf8_encode('€');
$str = preg_replace('/\x80/',$euro,$str);
return ($str);
}
pro : http://www.ohweb.fr -> studio de développement en PHP, expertise en e-commerce, certifié PrestaShop
perso : http://www.olecorre.com -> un dico de termes informatiques

J'ai toujours rêvé d'un ordinateur qui soit aussi facile à utiliser qu'un téléphone. Mon rêve s'est réalisé : je ne sais plus comment utiliser mon téléphone. [Bjarne Stroustrup]

ViPHP
ViPHP | 5924 Messages

14 août 2008, 13:52

Ahlala, l'euro ça n'a apporté que des problèmes :mrgreen:

Eléphant du PHP | 91 Messages

14 août 2008, 23:02

Tip-top cette fonction, ça marche parfaitement, merci.

Sékiltoyai > ah c'est sûr qu'un bon vieux F, c'est moins récalcitrant ;)