[PHP] GD - imagetfttext - polskie znaki

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:

<? 
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);

[email protected](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

0
<? 
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
[email protected](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

0

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

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?

0

no to co daje powyższe ?

0

Nie kumam.. Jak co daje powyższe?

0

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

0

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

0

Powyższy kod daje taki wynik:

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

0

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

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); 

}

1 użytkowników online, w tym zalogowanych: 0, gości: 1