[PHP] GD - imagetfttext - polskie znaki

Odpowiedz Nowy wątek
2006-08-19 14:11
homie
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);
 
$im[email protected]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

Pozostało 580 znaków

2006-08-19 15:35
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


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-08-19 15:43
homie
0

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

Pozostało 580 znaków

2006-08-19 16:19
homie
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?

Pozostało 580 znaków

2006-08-19 16:33
0

no to co daje powyższe ?


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-08-19 18:16
homie
0

Nie kumam.. Jak co daje powyższe?

Pozostało 580 znaków

2006-08-19 22:44
0

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


Hey ho!

Pozostało 580 znaków

2006-08-20 00:46
0

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


Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

2006-08-20 14:25
homie
0

Powyższy kod daje taki wynik:

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

Pozostało 580 znaków

2006-08-20 15:11
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); 
 
}

Dwie zasady gwarantujące sukces:
1. Nigdy nie mów nikomu wszystkiego<span style="color: white">

Pozostało 580 znaków

Odpowiedz
Liczba odpowiedzi na stronę

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