login  Naam:   Wachtwoord: 
Registreer je!
 Forum

speciale tekens in gdlibrary

Offline compudoc - 17/02/2008 19:51 (laatste wijziging 17/02/2008 19:52)
Avatar van compudocPHP beginner is het mogelijk om tekens als » e.d. te gebruiken in gdlibrary?
ik maak momenteel gebruik van de functie ImageString() om text te plaatsen.

7 antwoorden

Gesponsorde links
Offline Grayen - 17/02/2008 20:00
Avatar van Grayen PHP ver gevorderde Waarschijnlijk wel. Ik heb het niet getest dus weet niet zeker of hij ze kan lezen, maar kan het volgende niet gewoon?

  1. <?php
  2. $sString = '&amp; &raquo;';
  3.  
  4. $sString = html_entity_decode($sString, ENT_QUOTES);
  5.  
  6. // Hier jouw code
  7. ?>
Offline compudoc - 17/02/2008 20:11 (laatste wijziging 17/02/2008 20:11)
Avatar van compudoc PHP beginner nou het werkt gedeeltelijk. zonder mijn code werkt het wel goed.
mijn code:
  1. <?php
  2. //Dit duid aan dat het om een .PNG file gaat, Dit moet je altijd gebruiken!!
  3. header("content-type: image/png");
  4.  
  5. //We maken een afbeelding, X=150 en Y=200
  6. $image = ImageCreate(18, 20);
  7. //We maken een achtergrondkleur , We moeten altijd eerst zeggen over welk plaatje het gaat, in dit geval $image, daarachter volgt de kleurcode
  8. $achtergrond = ImageColorAllocate($image, 255, 25, 55); //255, 255, 255 = Wit
  9. //Het plaatje aanmaken.
  10.  
  11. ## eigen aanpassing! ##
  12.  
  13. // - bg color array - //
  14. $Bg[990000] = array(153, 0, 0);
  15.  
  16. $bc[1] = (isset($_GET['bg']) && (array_key_exists($_GET['bg'], $Bg))) ? $Bg[$_GET['bg']][0] : 34;
  17. $bc[2] = (isset($_GET['bg']) && (array_key_exists($_GET['bg'], $Bg))) ? $Bg[$_GET['bg']][1] : 126;
  18. $bc[3] = (isset($_GET['bg']) && (array_key_exists($_GET['bg'], $Bg))) ? $Bg[$_GET['bg']][2] : 216;
  19.  
  20. $sString = '&amp;' . $_GET['text'];
  21. $sString = html_entity_decode($sString, ENT_QUOTES);
  22.  
  23. imagefilledrectangle($image, 0, 0, 18, 20, ImageColorAllocate($image, 255, 255, 255));
  24. imagefilledrectangle($image, 1, 1, 16, 18, ImageColorAllocate($image, $bc[1], $bc[2], $bc[3]));
  25. ImageString($image, 3, 2, 3, $sString, ImageColorAllocate($image, 255,255,255));
  26.  
  27. ImagePng($image);
  28. //Het plaatje verwijderen uit het geheugen
  29. ImageDestroy($image);
  30. ?>


ik krijg namelijk als ik het aanroep met:
<img src="pagina.php?text=&raquo;" /> dan krijg ik er gezellig nog een aantal rare tekens bij ipv alleen het teken '&raquo'

iemand misschien de oplossing?
Offline Stijn - 17/02/2008 20:34
Avatar van Stijn PHP expert header("charset: UTF-8"); eens gebruiken of iets dergelijks.
Offline compudoc - 17/02/2008 20:51
Avatar van compudoc PHP beginner werkt helaas ook niet...
en die ENT_QUOTES die Grayen zei, wat doet die en kan je die niet in iets anders veranderen?
Offline marten - 17/02/2008 20:54
Avatar van marten Beheerder Check php.net
Offline Grayen - 18/02/2008 17:21
Avatar van Grayen PHP ver gevorderde raar :S. Die vreemde tekens geven aan dat de charsets inderdaad niet overeenkomen. De standaard charset van php is ISO-8859-1

html_enity_decode maakt van de string dus ook deze charset, zoals wordt gezegd op php.net:

"The ISO-8859-1 character set is used as default for the optional third charset . This defines the character set used in conversion."

ENT_QUOTES zorgt ervoor dat ook de etities van quotes worden omgezet naar hun normale tekens.

Vervolgens had ik gekeken op php.net bij imagestring om tekijken welke codering hij gebruikte en bij de user comments stond het volgende:

"The built-in fonts used to be in latin-2 (iso8859-2) encoding. For some time, they are in latin-1 (iso8859-1) encoding. There is no way to change the encoding at all. If you need to use any other encoding, you have to use TrueType fonts."

Dus het zou moeten werken.

Controleer anders eens of $sString na het decoderen al vreemde tekens bevat. Zo ja dat heb je je codering anders ingesteld. Zo niet, probeer dan html_entity_decode('string', ENT_QUOTES, 'utf-8');
Offline compudoc - 18/02/2008 20:08 (laatste wijziging 19/02/2008 08:11)
Avatar van compudoc PHP beginner ik zal het straks (of morgen vroeg) eens gaan proberen of dat wel werkt.

edit:
na lang proberen heb ik een oplossing voor het probleem gevonden (die van grayen was helaas niet de goede)

ik heb nu ipv de functie ImageString() de functie ImageTTFText() gebruikt. Nu werkt het wel goed.
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.196s