Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP/MySQL] Kasowanie polskich znaków
nowyyy31
post 20.05.2010, 11:23:26
Post #1





Grupa: Zarejestrowani
Postów: 53
Pomógł: 0
Dołączył: 20.08.2007
Skąd: Kartuzy

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


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.

Ten post edytował nowyyy31 20.05.2010, 11:24:12
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 04:00