[PHP] GD - imagetfttext - polskie znaki

[PHP] GD - imagetfttext - polskie znaki
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam.

Mam problem w postaci nie wyświetlania polskich znaków w użyciu funkcji imagetfttext w GD, używając tahomy. Na początku bez funkcji PLttf, nie wyświetlało żadnych znaków. Po jej zastosowaniu wyświetla wszystkie oprócz ą, Ą, ź, Ź. Na czym polega błąd? Da się to zrobić prościej? Skrypt wygląda tak:

Kopiuj
<? 
header("Content-type: image/jpeg");
$plik=fopen("opis.txt","r");

$opis=fgets($plik);
$data=fgets($plik);

function PLttf ($text) 
{ 
$znaki = Array ( 
  "ą"=>"&#261;", 
  "Ą"=>"&#260;", 
  "ę"=>"&#281;", 
  "Ę"=>"&#280;", 
  "ł"=>"&#322;", 
  "Ł"=>"&#321;", 
  "Ń"=>"&#323;", 
  "ń"=>"&#324;", 
  "Ś"=>"&#346;", 
  "ś"=>"&#347;", 
  "Ź"=>"&#377;", 
  "ź"=>"&#378;", 
  "Ż"=>"&#379;", 
  "ż"=>"&#380;", 
  "Ć"=>"&#262;", 
  "ć"=>"&#263;", 
  ); 


return strtr($text,$znaki); 

}
$opis=PLttf($opis);
$data=PLttf($data);

$im=@imagecreatetruecolor(600,250);
$white = imagecolorallocate($im, 255, 255, 255);
imagettftext($im, 12, 0, 15, 97, $white, '/home/a/alhambra/www/tahoma.ttf', $opis);
imagettftext($im, 12, 0, 15, 117, $white, '/home/a/alhambra/www/tahoma.ttf', $data);
imagejpeg($im,'', 100);
?>

http://homie.in5.pl/znaki.php

Adamo
  • Rejestracja: dni
  • Ostatnio: dni
0
Kopiuj
<? 
header("Content-type: image/jpeg");
$plik=fopen("opis.txt","r");

$opis=fgets($plik);
$data=fgets($plik);

function PLttf ($text) 
{ 
$znaki = Array ( 
  "ą"=>"&#261;", 
  "Ą"=>"&#260;", 
  "ę"=>"&#281;", 
  "Ę"=>"&#280;", 
  "ł"=>"&#322;", 
  "Ł"=>"&#321;", 
  "Ń"=>"&#323;", 
  "ń"=>"&#324;", 
  "Ś"=>"&#346;", 
  "ś"=>"&#347;", 
  "Ź"=>"&#377;", 
  "ź"=>"&#378;", 
  "Ż"=>"&#379;", 
  "ż"=>"&#380;", 
  "Ć"=>"&#262;", 
  "ć"=>"&#263;", 
  ); 


return strtr($text,$znaki); 

}
$opis=PLttf($opis);
$data=PLttf($data);

Die($opis . ' / ' . $data); /* ciach
$im=@imagecreatetruecolor(600,250);
$white = imagecolorallocate($im, 255, 255, 255);
imagettftext($im, 12, 0, 15, 97, $white, '/home/a/alhambra/www/tahoma.ttf', $opis);
imagettftext($im, 12, 0, 15, 117, $white, '/home/a/alhambra/www/tahoma.ttf', $data);
imagejpeg($im,'', 100); */
?>

co daje ? w jakim kodowaniu jest opis.txt

  • Rejestracja: dni
  • Ostatnio: dni
0

Hm.. W ANSI chyba :|. A jak ma być?

  • Rejestracja: dni
  • Ostatnio: dni
0

Kurcze.. Tworzę plik w notatniku. Przy zapisywaniu mam do wyboru opcje kodowania (ANSI, UNICODE, UNICODE big endian, UTF-8). W którym ma być zapisywany?

Adamo
  • Rejestracja: dni
  • Ostatnio: dni
0

no to co daje powyższe ?

  • Rejestracja: dni
  • Ostatnio: dni
0

Nie kumam.. Jak co daje powyższe?

KA
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Gród Króla Kraka
0

uzyj kodu ktory podal Adamo
napisz tutaj, co wyswietla przegladarka ;-)

Adamo
  • Rejestracja: dni
  • Ostatnio: dni
0

może nie tyle co wyświetla przeglądarka - tylko co wyświetli się pod funkcją typu "pokaż źródło"

  • Rejestracja: dni
  • Ostatnio: dni
0

Powyższy kod daje taki wynik:

http://alhambra.phpnet.us/test.php

Adamo
  • Rejestracja: dni
  • Ostatnio: dni
0

no to zonk chyba że plttf masz w latin2 a opis w cp1250
try

Kopiuj
function PLttf ($text) 
{ 
$znaki = Array ( 
  "ą"=>"&#261;", 
  "Ą"=>"&#260;",
  "ę"=>"&#281;", 
  "Ę"=>"&#280;", 
  "ł"=>"&#322;", 
  "Ł"=>"&#321;", 
  "Ń"=>"&#323;", 
  "ń"=>"&#324;", 
  "Ś"=>"&#346;", 
  "ś"=>"&#347;", 
  "Ź"=>"&#377;", 
  "ź"=>"&#378;",
  "Ż"=>"&#379;", 
  "ż"=>"&#380;", 
  "Ć"=>"&#262;", 
  "ć"=>"&#263;", 
  "Ľ"=>"&#378;",
  "?"=>"&#377;", 
  "?"=>"&#261;",
  "ˇ"=>"&#260;",
  "?"=>"&#347;",
  "?"=>"&#346;",
  ); 


return strtr($text,$znaki); 

}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.