” som bilder i PHP

Tråden skapades och har fått 9 svar. Det senaste inlägget skrevs .
1
  • Oregistrerad
  • 2004-01-21 10:55

Jag har ett script som skapar rubriker som bilder i PHP. Tyvärr så kommer inte tecken som t.ex. ” eller – med, däremot funkar åäö utmärkt..

Är det någon som har någon aning om vad det är som krånglar?
Kan det vara kodning av typsnittet?

PHP 4.3 med GD-lib 2 (TrueType)

jag gissar rent spontant på att det antingen kan vara för att du inte "escapar" kaninöronen ordentligt, dock borde bindestreck inte vara några problem. Kan även vara för att dom inte finns med i typsnittet (låter otroligt iofs)..

kanske klistra in lite kod som vi kan titta närmare på?

  • Oregistrerad
  • 2004-01-21 11:38
Citat:

Skrevs ursprungligen av johan dansk
jag gissar rent spontant på att det antingen kan vara för att du inte "escapar" kaninöronen ordentligt, dock borde bindestreck inte vara några problem. Kan även vara för att dom inte finns med i typsnittet (låter otroligt iofs)..

kanske klistra in lite kod som vi kan titta närmare på?

De finns i typsnittet och på rätt ställe... Det blir samma strul om jag bygger en sträng med chr(148) istället för ” t.ex., så det borde inte vara escapandet...

testa att göra en addslashes(string) innan du kör...

  • Medlem
  • Stockholm
  • 2004-01-22 17:55
Citat:

Skrevs ursprungligen av Jonny Friberg
Jag har ett script som skapar rubriker som bilder i PHP. Tyvärr så kommer inte tecken som t.ex. ” eller – med, däremot funkar åäö utmärkt..

Är det någon som har någon aning om vad det är som krånglar?
Kan det vara kodning av typsnittet?

PHP 4.3 med GD-lib 2 (TrueType)

Det här fungerar hur bra som helst
[code]
imagestring($image, 4,20,20,"\"citat\"",$black);

  • Medlem
  • Stockholm
  • 2004-01-22 17:55
Citat:

Skrevs ursprungligen av Jonny Friberg
Jag har ett script som skapar rubriker som bilder i PHP. Tyvärr så kommer inte tecken som t.ex. ” eller – med, däremot funkar åäö utmärkt..

Är det någon som har någon aning om vad det är som krånglar?
Kan det vara kodning av typsnittet?

PHP 4.3 med GD-lib 2 (TrueType)

Det här fungerar hur bra som helst

imagestring($image, 4,20,20,"\"citat\"",$black);

visserligen har redan Johan tipsat om den lösningen, men men

  • Oregistrerad
  • 2004-01-22 18:37

" är inga problem, det är krulliga citat (”) som krånglar #148

aha! jag har en liten funktion som jag brukar användar i sånna fall där html_entities() inte räcker till, här är transtabeln :

# grab out currly quotes and sa quotes (not the normal htmlentities table)
	$entities['%93'] = '“';
	$entities['%94'] = '”';
	$entities['%8B'] = '‹';
	$entities['%9B'] = '›';
	$entities['%97'] = '—';
	$entities['%96'] = '–';
	$entities['%95'] = '•';
	$entities['%92'] = '’';
	$entities['%95'] = '•';
	$entities['%A2'] = '¢';
	$entities['%A3'] = '£';
	$entities['%A5'] = '¥';
	$entities['%A7'] = '§';
	$entities['%AB'] = '«';
	$entities['%AC'] = '¬';
	$entities['%AD'] = '¯';
	$entities['%B0'] = 'º';
	$entities['%B1'] = '±';
	$entities['%B2'] = 'ª';
	$entities['%B5'] = 'µ';
	$entities['%BB'] = '»';
	$entities['%BF'] = '¿';
	$entities['%C0'] = 'À';
	$entities['%C1'] = 'Á';
	$entities['%C2'] = 'Â';
	$entities['%C3'] = 'Ã';
	$entities['%C4'] = 'Ä';
	$entities['%C5'] = 'Å';
	$entities['%C6'] = 'Æ';
	$entities['%C7'] = 'Ç';
	$entities['%C8'] = 'È';
	$entities['%C9'] = 'É';
	$entities['%CA'] = 'Ê';
	$entities['%CB'] = 'Ë';
	$entities['%CC'] = 'Ì';
	$entities['%CD'] = 'Í';
	$entities['%CE'] = 'Î';
	$entities['%CF'] = 'Ï';
	$entities['%D1'] = 'Ñ';
	$entities['%D2'] = 'Ò';
	$entities['%D3'] = 'Ó';
	$entities['%D4'] = 'Ô';
	$entities['%D5'] = 'Õ';
	$entities['%D6'] = 'Ö';
	$entities['%D8'] = 'Ø';
	$entities['%D9'] = 'Ù';
	$entities['%DA'] = 'Ú';
	$entities['%DB'] = 'Û';
	$entities['%DC'] = 'Ü';
	$entities['%DD'] = '¯';
	$entities['%DE'] = '®≠';
	$entities['%DF'] = 'ß';
	$entities['%E0'] = 'à';
	$entities['%E1'] = 'á';
	$entities['%E2'] = 'â';
	$entities['%E3'] = 'ã';
	$entities['%E4'] = 'ä';
	$entities['%E5'] = 'å';
	$entities['%E6'] = 'æ';
	$entities['%E7'] = 'ç';
	$entities['%E8'] = 'è';
	$entities['%E9'] = 'é';
	$entities['%EA'] = 'ê';
	$entities['%EB'] = 'ë';
	$entities['%EC'] = 'ì';
	$entities['%ED'] = 'í';
	$entities['%EE'] = 'î';
	$entities['%EF'] = 'ï';
	$entities['%F0'] = '©£';
	$entities['%F1'] = 'ñ';
	$entities['%F2'] = 'ò';
	$entities['%F3'] = 'ó';
	$entities['%F4'] = 'ô';
	$entities['%F5'] = 'õ';
	$entities['%F6'] = 'ö';
	$entities['%F7'] = '÷';
	$entities['%F8'] = 'ø';
	$entities['%F9'] = 'ù';
	$entities['%FA'] = 'ú';
	$entities['%FB'] = 'û';
	$entities['%FC'] = 'ü';
	$entities['%FF'] = 'ÿ';

	$output = urlencode($output); /* first url encode it to get % values */
	$output = strtr($output, $entities); /* make the swap */
	$output = urldecode($output); /* decode */

dom tre sista raderna urlencoder och ersätter till html läsbara taggar, dock kommer jag inte ihåg hur gblib funktionerna hanterar det, hojta om den inte giller det.
...jag är nästan säker på allt som html_entities() in klarar av är med där!

fan, givetvis skall forumet inte visa den råa html koden, men nu ser du iaf vilka tecken den parser

kolla här: http://0x.se/temp/urlencode_transtable.txt

  • Oregistrerad
  • 2004-01-22 22:41

Nu blir jag förbryllad.. Min imagefunktion går inte att mata med HTML -- den skriver ut koden då...
Om jag gör en dump av ASCII-nummer så försvinner alla tecken mellan nr 128 och 160. Har testat med andra typsnitt som jag inte har konverterat själv, och det blir samma sak..

Det fungerar om jag hanterar mitt krulliga citat (”) så här:

2. ersätt chr(148) med "%E2%80%9D"
3. urldecoda
4. Skapa bilden

Är det någonting med unicode eller något sånt kanske?

1
Bevaka tråden