Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] Funcja string Directory::read ( void ) nie zwraca polskich znaków
Forum PHP.pl > Forum > PHP
zkuba
Witam

Zrobiłem proste listowanie plików z katalogu wraz z tworzeniem linków.

Niestety już podczas odczytywania plików z katalogu funkcja zwraca nazwę pliku bez polskich znaków. Jedynie ó dobrze działa.

To znaczy jeżeli stworzymy sobie plik o nazwie "óęąśćźżł" w katalogu "docs" to skrypt wylistuje plik "óeasczzl" i stworzy link do pliku "óeasczzl".


Skrypt wygląda tak:

  1. setlocale(LC_ALL, 'Polish_Poland.1250');
  2. $folder = dir('docs');
  3.  
  4. echo '<ul>';
  5. while($plik = $folder->read()) {
  6. if (($plik != '.') AND ($plik != '..'))
  7. {
  8. $file_utf8 = iconv( "cp1250", "utf-8", $plik );
  9. //$file_utf8 = pl_iso2utf8($plik);
  10. //$file_utf8 = bin2hex($plik);
  11.  
  12. $nazwa = pathinfo($plik);
  13. $pliki[$nazwa['basename']] = $nazwa['extension'];
  14. echo '<li><a class="two" href="docs/' .rawurlencode($plik). '">' .$file_utf8. '</a></li>';
  15. //echo '<li><a class="two" href="docs/' .$plik. '">' .$plik. '</a></li>';
  16. }
  17. }
  18. echo '</ul>';
  19.  
  20. $folder->close();


Może ma ktoś jakiś pomysł już prawie wszystkiego próbowałem.

Pozdrawiam
Uriziel01
A czy ktoś tutaj nie zapomniał ustawić kodowania pliku ? rolleyes.gif
Troszkę teorii:
http://webmade.org/porady/kodowanie.php
czy też:
http://algorytmy.pl/doc/xhtml/?id=107

Ja bym raczej nie polegał na funkcji która już od wersji 5.3.0 wyrzuca E_DEPRECATED.
zkuba
Hej

Dzięki za odpowiedź. Jeżeli chodzi o kodowanie to oczywiście o tym pamiętałem. Wrzuciłem tylko fragment kodu. Początek wygląda mniej więcej tak:

  1. <?xml version="1.0" encoding="iso-8859-2"?>
  2. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  3. "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
  5.  
  6. <head>
  7. <title>...</title>
  8. <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
  9. <meta name="Keywords" content=""/>
  10. <meta name="Author" content="kubaz"/>
  11. <link rel="stylesheet" type="text/css" href="style.css"/>
  12. </head>


Co miałeś na myśli: Ja bym raczej nie polegał na funkcji która już od wersji 5.3.0 wyrzuca E_DEPRECATED ?
gac3k
a czemu mieszasz 3 różne kodowania. ISO-8859-2, UTF-8 a do tego jeszcze Windows 1250, zostań tylko przy UTF-ie
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.