Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Funkcja imagettftext
norbitbg
post
Post #1





Grupa: Zarejestrowani
Postów: 4
Pomógł: 0
Dołączył: 5.11.2011

Ostrzeżenie: (0%)
-----


Witam,
Porzebuję pomocy z funkcją imagettftext. Może ktoś już się spotkał z tym problemem.

Mianowicie, problem polega na tym, że zamiast polskich znaków, otrzymuję kwadraciki. Oczywiści pierwszy mój pomysł, to kodowanie.
Jednakże do tej funkcji przekazuję tekst poprzez Ajax, więc kodowania UTF-8 mam zapewnione, pomimo tego, polskich znaków brak. (Sprawdziłem kodowanie z pomocą mb_detect_encoding - wyniki: UTF-8)

Więc pewnie problem polega z czcionką...Tylko nie bardzo wiem gdzie. Testowałem na czcionce arial. Dla pewności zmieniłem też nazwę pliku czcionki na inny, no i faktycznie proces php ma do niego uchwyt, więc zapewne z niego korzysta.


Bedę wdzięczy z pomoc

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
cudny
post
Post #2





Grupa: Zarejestrowani
Postów: 387
Pomógł: 66
Dołączył: 31.03.2005
Skąd: Kielce

Ostrzeżenie: (0%)
-----


Weź no na początku pliku daj:
echo '<pre>';
print_r($_POST);
echo '</pre>';
i wyświetl to w konsoli, zobaczymy czy się wykrzacza.

A jeśli mogę coś zasugerować (IMG:style_emoticons/default/tongue.gif) zamień poniższe warunki na instrukcję switch, według mojego opisu (IMG:style_emoticons/default/smile.gif)

  1. if($_POST['font'] == 'arial')
  2. $img->fontFile = 'arial'.$img->fontStyle.'.ttf';
  3. else if($_POST['font'] == 'times')
  4. $img->fontFile = 'times'.$img->fontStyle.'.ttf';
  5. else if($_POST['font'] == 'verdana')
  6. $img->fontFile = 'verdana'.$img->fontStyle.'.ttf';
  7. else
  8. $img->fontFile = 'arial'.$img->fontStyle.'.ttf';

Zmień na:
  1. switch($_POST['font']) {
  2. case('times'):
  3. case('verdana'):
  4. $img->fontFile = $_POST['font'].$img->fontStyle.'.ttf';
  5. break;
  6. default:
  7. $img->fontFile = 'arial'.$img->fontStyle.'.ttf';
  8. }

i
  1. if(isset($_POST['text-align']) && $_POST['text-align'] == 'left')
  2. $img->textAlign = 'left';
  3. else if(isset($_POST['text-align']) && $_POST['text-align'] == 'right')
  4. $img->textAlign = 'right';
  5. else if(isset($_POST['text-align']) && $_POST['text-align'] == 'center')
  6. $img->textAlign = 'center';

zmień na:
  1. if(isset($_POST['text-align'])) {
  2. switch($_POST['text-align']) {
  3. case('left'):
  4. case('right'):
  5. case('center'):
  6. $img->textAlign = $_POST['text-align'];
  7. }
  8. }


Prawda, że ładniej (IMG:style_emoticons/default/smile.gif) ?
I do tego warunek isset(); sprawdzany tylko raz, i switch() (jak podaje manual) jest bardziej wydajny (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.10.2025 - 07:11