Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Polskie znaki w nazwach plików
pablos83
post 12.11.2009, 18:33:49
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.05.2006

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


Skrypt pobiera pliki na serwer. W nazwach plików są polskie znaki diakrytyczne i skrypt zastępuje te znaki jakimiś innymi symbolami.
Paranoja. Co może być przyczyną? Czy może to być wina systemu serwera? Jak temu zapobiec?

Ten post edytował pablos83 12.11.2009, 18:34:15
Go to the top of the page
+Quote Post
erix
post 12.11.2009, 18:54:15
Post #2





Grupa: Moderatorzy
Postów: 15 467
Pomógł: 1451
Dołączył: 25.04.2005
Skąd: Szczebrzeszyn/Rzeszów




Może być wina systemu. A może być też wina braku kodowania przez URL.

Nie napisałeś, jak pobiera.


--------------------

ZCE :: Pisząc PW załączaj LINK DO TEMATU i TYLKO w sprawach moderacji :: jakiś błąd - a TREŚĆ BŁĘDU? :: nie ponaglaj z odpowiedzią via PW!
Go to the top of the page
+Quote Post
piotr94
post 12.11.2009, 19:10:13
Post #3





Grupa: Zarejestrowani
Postów: 331
Pomógł: 30
Dołączył: 11.11.2008
Skąd: Kraków

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


najlepiej usuwać z plików wszystkie polskie znaki, a pełne nazwy kodować w bazie danych - uwierz że będziesz miał z polskimi znakami w nazwach plików duużo problemów ;-)


--------------------
http://www.piotr94.net21.pl/ - wykonanie stron i serwisów internetowych
Jeśli moje wypowiedzi były dla Ciebie pomocne, kliknij "Pomógł" i odwdzięcz się ;)
Go to the top of the page
+Quote Post
pablos83
post 12.11.2009, 19:39:52
Post #4





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 3.05.2006

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


Cytat(piotr94 @ 12.11.2009, 19:10:13 ) *
najlepiej usuwać z plików wszystkie polskie znaki, a pełne nazwy kodować w bazie danych - uwierz że będziesz miał z polskimi znakami w nazwach plików duużo problemów ;-)


tak też uczyniłem wstawiając taki skrypt:

  1. $file = basename($_FILES['dodajZdjecie']['name']); // pobiera oryginalną nazwę pliku
  2. $file = strtolower($file); //zamienia wszystkie znaki na znaczki :)
  3. $file = strtr($file, "ą", "a"); //w zmiennej $file zamienia ą na a i ją nadpisuje
  4. $file = strtr($file, "ć", "c");
  5. $file = strtr($file, "ę", "e");
  6. $file = strtr($file, "ł", "l");
  7. $file = strtr($file, "ń", "n");
  8. $file = strtr($file, "ó", "o");
  9. $file = strtr($file, "ś", "s");
  10. $file = strtr($file, "ź", "z");
  11. $file = strtr($file, "ż", "z");
  12. $file = strtr($file, "ž", "z"); //ž inny dowolny znak


może komuś się przyda
Go to the top of the page
+Quote Post
Fifi209
post 12.11.2009, 23:03:12
Post #5





Grupa: Zarejestrowani
Postów: 4 655
Pomógł: 556
Dołączył: 17.03.2009
Skąd: Katowice

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


Przecież istnieje coś takiego jak str_replace(), więc popraw swój kod. winksmiley.jpg


--------------------
Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP
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: 18.07.2025 - 00:16