Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: polskie znaki w nazwach plików
Forum PHP.pl > Forum > Przedszkole
a79rtur
czesc
wrzucam na konto z obsluga php pliki rozne. mam skrypt php ktory tworzy strone html z linkami do plikow i katalogow. niestety nie da sie sciagac tych ktore zawieraja w nazwie polskie litery, pisze ze nie ma takiego pliku. co moze byc tego przyczyną ?
skrypt wyglada w skrócie tak
  1. <?php
  2.  
  3. ......
  4. $katalog='.';
  5. $wsk_katalogu=opendir($katalog);
  6.  
  7. while(false !== ($nazwa_pliku=readdir($wsk_katalogu))) 
  8. {
  9.  
  10. if(($nazwa_pliku!='.') and ($nazwa_pliku!='..') and (strstr($nazwa_pliku, '.')!='.php'))
  11. echo '<a href=\"'.$nazwa_pliku.'\">'.$nazwa_pliku.'</a><br />';
  12. }
  13.  
  14. closedir($wsk_katalogu);
  15. ....
  16. ...
  17.  
  18. ?>
borec
zamieniaj polskie znaki, np. ś -> s itd, unikniesz klopotow
a79rtur
jakoś mnie to rozwiazanie nie satysfakcjonuje smile.gif . naprawde nie można nic z tym zrobić ?
Dabroz
  1. <?php
  2.  
  3. ......
  4. $katalog='.';
  5. $wsk_katalogu=opendir($katalog);
  6.  
  7. while(false !== ($nazwa_pliku=readdir($wsk_katalogu))) 
  8. {
  9.  
  10. if(($nazwa_pliku!='.') and ($nazwa_pliku!='..') and (strstr($nazwa_pliku, '.')!='.php'))
  11. echo '<a href=\"'.urlencode($nazwa_pliku).'\">'.$nazwa_pliku.'</a><br />';
  12. }
  13.  
  14. closedir($wsk_katalogu);
  15. ....
  16. ...
  17.  
  18. ?>


Ale raczej nie uzywaj PL liter w nazwach plikow...
borovsky
���깜�� - to są odpowiedniki żółćęąśźń przy odczycie nazw z katalogów

pytanie, czy te znaki zawsze będą takie same, ew, czy zawsze takie same będą na tym samym serwerze, możnaby wtedy stosować zamianę tych krzaków na ich ziemskie odpowiedniki smile.gif
ps. nie wiem czy w ogóle te krzaczki dobrze się na waszych ekranach wyświetlą

edit// widze teraz ze nawet ilosc znakow se nie zgadza

słuchajcie, problem jest taki, że klient wrzuca przez FTP pliki z lokalnej galerii i upiera się, by uwzględniać polskie znaki w nazwach
może inny jezyk niż PHP? proszę o pomoc
ucho
Wytłumacz mu żę standard definiujący adresy URL/URI nie przewiduje narodowych znaczków. Problem jest choćby taki, że przeglądarka nie wie czy w zapytaniu do serwera ma zakodować pliterki w adresie jako iso czy utf - no bo niby skąd ? Nawet jak we wszystkich adresach zrobisz urlencode to znajdą się przeglądarki (niedużo, ale zawsze) które nie dadzą rady ich otworzyć.
Najprostsze rozwiązanie poza "polskawymi literkami" to modrewrite i nazwy w stylu "32,żółtyobrazek.jpg" - nie ważne czy przeglądarka poradzi sobie z polskimi literkami bo wyślesz obrazek na podstawie identyfikatora smile.gif
borovsky
moge zaproponować jedynie forme: _z_o_l_c oraz ja_x_n ale naprawdę nie wiem czy oni chcą zmieniać nazwy każdego pliku. nie chcą też panelu administracyjnego.
calebos
Zastosuj urlencode i zapisz go tak potem jak uzywasz to odkodujesz.
borovsky
urlencode nic nie zmienia a znaczki nadal krzaczki
pytam się czy może ktoś zarzucić listingiem z odczytem katalogu + pl chars?
calebos
Nie rozumiem skoro dziala przy przekazywaniu przez URL to dlaczego mialby nie dzialac w tym przypadku ?
golaod
Jak tak bardzo Ci potrzebne te polskie litery to w url zamieniaj je na encje & #321; itd a potem z powrotem na polskie 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.