Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP/MySQL] Kasowanie polskich znaków
Forum PHP.pl > Forum > PHP
nowyyy31
Witam

Mam problem z kasowanie polskich znaków, które są wyciąganie z bazy danych.
W bazie danych mam tekst z polskimi znakami, baza zapisuje tekst w latin2_general_ci.
Strona jest wyświetlana w iso-8859-2.

Skrypt połaczenia bazy danych
  1. FUNCTION dbconn($autoclean = false)
  2. {
  3. global $mysql_host, $mysql_user, $mysql_pass, $mysql_db;
  4. IF (!@mysql_connect($mysql_host, $mysql_user, $mysql_pass))
  5. {
  6. switch (mysql_errno())
  7. {
  8. case 1040:
  9. case 2002:
  10. case 1203:
  11. IF ($_SERVER[REQUEST_METHOD] == "GET")
  12. die("<html><head><meta http-equiv=refresh content=\"10 $_SERVER[REQUEST_URI]\"></head><body><table border=0 width=\"100%\" height=100%><tr><td><h3 align=center>Serwer w tym momęcie jest bardzo obciążony. Automatyczne odświeżanie, proszę czekać...</h3></td></tr></table></body></html>");
  13. else
  14. die("Too many users. Please press the Refresh button in your browser to retry.");
  15. DEFAULT:
  16. die("[" . mysql_errno() . "] dbconn: mysql_connect: " . mysql_error());
  17. }
  18. }
  19. mysql_select_db($mysql_db)
  20. OR die('dbconn: mysql_select_db: ' + mysql_error());
  21. user();
  22. mysql_query("SET NAMES 'latin2'");
  23. mysql_query("SET CHARACTERSET 'latin2'");
  24.  
  25. IF ($autoclean)
  26. register_shutdown_function("autoclean");
  27. }

skrypt czyszczący znaki PL
  1. function znaki($text){
  2.  
  3. $from = array(
  4. "\xb1", "\xe6", "\xea",
  5. "\xb3", "\xf1", "\xf3",
  6. "\xb6", "\xbc", "\xbf",
  7. "\xa1", "\xc6", "\xca",
  8. "\xa3", "\xd1", "\xd3",
  9. "\xa6", "\xac", "\xaf",
  10. );
  11.  
  12. $clear = array(
  13. "\x61", "\x63", "\x65",
  14. "\x6c", "\x6e", "\x6f",
  15. "\x73", "\x7a", "\x7a",
  16. "\x41", "\x43", "\x45",
  17. "\x4c", "\x4e", "\x4f",
  18. "\x53", "\x5a", "\x5a",
  19. );
  20. if(is_array($text)) {
  21. foreach($text as $key => $value) {
  22. $array[str_replace($from, $clear, $key)]= str_replace($from, $clear, $value);
  23. }
  24. return $array;
  25. }else {
  26. return str_replace($from, $clear, $text);
  27. }
  28.  
  29.  
  30. }


nie mam pojęcia dla czego polskie znaki nie są czyszczone.
parzygnat
jaką postać ma ta zmienna $text przekazywana do funkcji znaki() ?
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.