Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Zamiana polskich znaków na zwykłe
Forum PHP.pl > Forum > PHP
wandam
Witam,
mam problem z zamianą znaków polskich na odpowiedniki bez ogonków tzn. łączę się z bazą MySQL i pobieram z niej dane z polskimi znakami (poprawnie są wyświetlane na stronie która jest kodowana w ISO-8859-2), schody zaczynają się gdy próbuję przerobić te znaki na ich odpowiedniki bez ogonków.

Mam tak:
  1. $zapytanie=mysql_query('SELECT * FROM dzialy ORDER BY nazwa_dzialu ASC');
  2. while ($array=mysql_fetch_array($zapytanie))
  3. {
  4. $strona = zamien($array['nazwa_dzialu']);
  5. echo $strona;
  6. }


Funkcja zamiany:
  1. function zamien($zrodlo)
  2. {
  3. $tabela = Array(
  4. //WIN
  5. "xb9" => "a", "xa5" => "A", "xe6" => "c", "xc6" => "C",
  6. "xea" => "e", "xca" => "E", "xb3" => "l", "xa3" => "L",
  7. "xf3" => "o", "xd3" => "O", "x9c" => "s", "x8c" => "S",
  8. "x9f" => "z", "xaf" => "Z", "xbf" => "z", "xac" => "Z",
  9. "xf1" => "n", "xd1" => "N",
  10. //UTF
  11. "xc4x85" => "a", "xc4x84" => "A", "xc4x87" => "c", "xc4x86" => "C",
  12. "xc4x99" => "e", "xc4x98" => "E", "xc5x82" => "l", "xc5x81" => "L",
  13. "xc3xb3" => "o", "xc3x93" => "O", "xc5x9b" => "s", "xc5x9a" => "S",
  14. "xc5xbc" => "z", "xc5xbb" => "Z", "xc5xba" => "z", "xc5xb9" => "Z",
  15. "xc5x84" => "n", "xc5x83" => "N",
  16. //ISO
  17. "xb1" => "a", "xa1" => "A", "xe6" => "c", "xc6" => "C",
  18. "xea" => "e", "xca" => "E", "xb3" => "l", "xa3" => "L",
  19. "xf3" => "o", "xd3" => "O", "xb6" => "s", "xa6" => "S",
  20. "xbc" => "z", "xac" => "Z", "xbf" => "z", "xaf" => "Z",
  21. "xf1" => "n", "xd1" => "N", " " => "_", "ń" => "n", "ŝ" => "n"
  22. );
  23. //tablica po wielu próbach
  24.  
  25. return strtr($zrodlo,$tabela);
  26.  
  27. }


Gdy zamieniam np. 'n' na 'z' to wszystko działa (dodająć do tablicy odpowiednia zawartość oczywiście "n" =>"z") próbując zamienić natomiast 'ń' na 'n' wyraz pozostaje bez zmiany z polskim ogonkiem. Próbowałem iconv na różne sposoby, łączenie się z bazą ustalając określone kodowanie i nic. Może ktoś będzie wiedział ocb biggrin.gif

System kodowania znaków dla MySQL: UTF-8 Unicode (utf8) (utf8_polish_ci)
System porównań dla połączenia MySQL: latin2_general_ci
Fifi209
Wiesz do czego jest strstr ?
Cytat
strstr — Find first occurrence of a string


Może tak: str_replace ?
erix
Sam iconv do tego wystarczy... dry.gif
wandam
Nie używam strstr tylko strtr winksmiley.jpg
Faktycznie sam iconv wystarczył ;o Nie wiem czemu wcześniej mi nie działał widocznie jakieś przeoczenie biggrin.gif dzięki wielkie temat do zamknięcia
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.