Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Filemanager, kodowanie nazw plików
potreb
post
Post #1





Grupa: Zarejestrowani
Postów: 1 568
Pomógł: 192
Dołączył: 7.03.2005
Skąd: Warszawa

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


Witam. Stworzyłem sobie menedżera plików. Ogólnie trochę się różni od innych gdyż informacje o plikach zamiast bezpośrednio pobierać z katalogu - pobiera z bazy danych. Przy czym to zastosowanie ma swoje plusy (sortowanie, wyszukiwanie). Minusem jest to że w przypadku wgrania pliku bezpośrednio na serwer a nie poprzez upload trzeba odświeżyć zawartość wstawiając brakujące pliki.

Dzisiaj natknąłem się na problem przy odświeżaniu plików. Posiadam funkcję transliteracji, która przekształca mi nazwę na odpowiedniki znaków asci.
  1. public function transliterate($filename, $strtolower = true )
  2. {
  3. $filename = iconv('WINDOWS-1250', 'ASCII//TRANSLIT//IGNORE', $filename);
  4. $charsArr = array( '^', '\'', '"', '`', '~', "'", ';');
  5. $filename = str_replace( $charsArr, '', $filename );
  6. $filename = preg_replace( "/[^a-z0-9-.]{1}/i", '_', $filename );
  7. while( strcmp($filename, $filename = str_replace(array('__', '--'), array('_', '-'), $filename)) != 0 );
  8. return $strtolower ? mb_strtolower($filename, 'utf-8') : $filename;
  9. }


Oczywiście funkcja zrobiona jest stricte pod Windows Server dlatego kodowanie początkowe mam ustawione na windows-1250. A co w przypadku serwerów unixowych? Kodowanie jest inne i dlatego chciałbym wykryć jakie kodowanie jest dla nazwy. Wiem, że z wykryciem właściwego kodowania znaków jest problemem? Oczywiście przy zastosowaniu tej samej funkcji z kodowaniem utf-8 przy wgrywaniu przez upload nie ma problemu.

Ten post edytował potreb 22.02.2012, 20:45:30


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

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 Aktualny czas: 20.08.2025 - 17:23