Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> polskie litery w nazwach pliów po uploadzie
pawelvod
post 6.06.2007, 06:48:40
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 21.09.2006

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


Używam skryptu który zachowuje polskie nazwy znaków po uploadzie (_POST). Konwertuję je do WIN1250 funcją:
  1. <?php
  2. function plCharset($string, $type = ISO88592_TO_UTF8)
  3. {
  4.  
  5. $win2utf = array(
  6. "xb9" => "xc4x85", "xa5" => "xc4x84",
  7. "xe6" => "xc4x87", "xc6" => "xc4x86",
  8. "xea" => "xc4x99", "xca" => "xc4x98",
  9. "xb3" => "xc5x82", "xa3" => "xc5x81",
  10. "xf3" => "xc3xb3", "xd3" => "xc3x93",
  11. "x9c" => "xc5x9b", "x8c" => "xc5x9a",
  12. "x9f" => "xc5xbc", "x8f" => "xc5xbb",
  13. "xbf" => "xc5xba", "xaf" => "xc5xb9",
  14. "xf1" => "xc5x84", "xd1" => "xc5x83"
  15. );
  16. $iso2utf = array(
  17. "xb1" => "xc4x85", "xa1" => "xc4x84",
  18. "xe6" => "xc4x87", "xc6" => "xc4x86",
  19. "xea" => "xc4x99", "xca" => "xc4x98",
  20. "xb3" => "xc5x82", "xa3" => "xc5x81",
  21. "xf3" => "xc3xb3", "xd3" => "xc3x93",
  22. "xb6" => "xc5x9b", "xa6" => "xc5x9a",
  23. "xbc" => "xc5xbc", "xac" => "xc5xbb",
  24. "xbf" => "xc5xba", "xaf" => "xc5xb9",
  25. "xf1" => "xc5x84", "xd1" => "xc5x83"
  26. );
  27.  
  28. if ($type == ISO88592_TO_UTF8)
  29. return strtr($string, $iso2utf);
  30. if ($type == UTF8_TO_ISO88592)
  31. return strtr($string, array_flip($iso2utf));
  32. if ($type == WIN1250_TO_UTF8)
  33. return strtr($string, $win2utf);
  34. if ($type == UTF8_TO_WIN1250)
  35. return strtr($string, array_flip($win2utf));
  36. if ($type == ISO88592_TO_WIN1250)
  37. return strtr($string, "xa1xa6xacxb1xb6xbc",
  38. "xa5x8cx8fxb9x9cx9f");
  39. if ($type == WIN1250_TO_ISO88592)
  40. return strtr($string, "xa5x8cx8fxb9x9cx9f",
  41. "xa1xa6xacxb1xb6xbc");
  42. }
  43. ?>

niestety część znaków (bardzo żadko) nie podlega konwersji i mam problemy z tymi plikami. Jak zabezpieczyć się, żeby tylko znaki akceptowane w pasku przeglądarki jako adres url przechodziły przez tą funkcję? Przykładowa nazwa pliku która sprawia mi problemy to: bez tytułu.JPG
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
nexis
post 6.06.2007, 09:48:18
Post #2





Grupa: Zarejestrowani
Postów: 1 012
Pomógł: 109
Dołączył: 26.09.2003
Skąd: nexis.pl

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


Może zamień polskie znaki na ich "zwykłe" odpowiedniki (ł -> l, ą -> a, itd.) a pozostałe (te, które nie mają takich odpowiedników) po prostu usuń?

Jeśli miałbyś problem z napisaniem takiej funkcji to zgłoś się do mnie na PM.


--------------------
Zend Certified Engineer

Kliknij POMÓGŁ jeśli moja odpowiedź okazała się użyteczna!
Go to the top of the page
+Quote Post
pawelvod
post 7.06.2007, 16:52:27
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 0
Dołączył: 21.09.2006

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


Niby tak, ale chodzi mi o to, żeby polskie znaki były zachowane. Poza tym są jeszcz .-_ i inne które też chciałbym zachowywać, czyli jak najmniej ingerować w nazwę pliku. Pozbyć się doładnie tylko tych które będą źle przekazane w URL.
Go to the top of the page
+Quote Post
^bmb
post 7.06.2007, 17:07:43
Post #4





Grupa: Zarejestrowani
Postów: 69
Pomógł: 2
Dołączył: 12.12.2005

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


Jeśli zależy Ci na tym żeby uniknąć problemów to zrób tak jak nexis radzi.
Wytłumacz "Pani Zosi" z sekretariatu że nie jest wskazane używanie polskich znaków winksmiley.jpg i że niestety takowe będą zamieniane...nie zapomnij też o spacjach i innych niestandardowych znakach


--------------------
Cogito Ergo Sum
Go to the top of the page
+Quote Post
misiek172
post 7.06.2007, 18:18:51
Post #5





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


ja używałem do tego funkcji do kodowania URL takich jak:

urlencode urldecode

lub

rawurlcode rawurldecode

wtedy wszystkie znaczki będziesz miał smile.gif


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post

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 - 07:42