Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [HTML][PHP] Lista plików - problem z polskimi znakami.
gevaroght
post 22.11.2010, 22:37:22
Post #1





Grupa: Zarejestrowani
Postów: 2
Pomógł: 0
Dołączył: 27.07.2010

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


Chciałem zmienić listę plików zwracaną przez serwer Apache na skonfigurowaną przeze mnie. A że nie znałem php była to nieco czasochłonne, ale jakoś się udało. Działało świetnie dopóki nie umieściłem w katalogu pliku z polskim znakiem "ł". Link naprawiłem używając funkcji urlencode() - zamienił "ł" na "%B3", ale nazwa wyświetlana na stronie zawiera nieznany znak. Po podaniu strony do W3C Validator otrzymałem błąd:

The error was: utf8 "\xB3" does not map to Unicode

Oto aktualny kod php:

  1. <?php
  2.  
  3. ini_set('display_errors','1');
  4.  
  5. $dirlist = NULL;
  6. $filelist = NULL;
  7.  
  8. $deep = substr_count($_SERVER['REQUEST_URI'], '/') - 1;
  9. for ($i = 0; $i < $deep; $i++)
  10. {
  11. $icon_dir .= '../';
  12. }
  13. $icon_dir .= 'img_filelist/';
  14.  
  15. if ($handle = opendir('.'))
  16. {
  17. while (false !== ($file = readdir($handle)))
  18. {
  19.  
  20. if ($file != "." && $file != ".." && $file != "index.php")
  21. {
  22. if (is_dir($file))
  23. {
  24. $dirlist[$file] = '<a href="' . $file . '/"><img src="' . $icon_dir . 'folder.png" >' . $file . '</a><br>';
  25. }
  26. else
  27. {
  28. $filelist[$file] = '<a href="' . urlencode($file) . '"><img src="' . $icon_dir;
  29. if (file_exists( $icon_dir . pathinfo($file, PATHINFO_EXTENSION) . ".png"))
  30. {
  31. $filelist[$file] .= pathinfo($file, PATHINFO_EXTENSION);
  32. }
  33. else
  34. {
  35. $filelist[$file] .= 'file';
  36. }
  37. $filelist[$file] .= '.png"> ' . $file . '</a><br>';
  38. }
  39. }
  40. }
  41.  
  42. @ksort($dirlist);
  43. @ksort($filelist);
  44.  
  45. closedir($handle);
  46. }
  47. ?>
  48.  
  49. <!DOCTYPE HTML>
  50. <html>
  51. <head>
  52. <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
  53. <title>Lista plików</title>
  54. </head>
  55. <body>
  56.  
  57. <p>List of files:</p>
  58. <p>
  59. <?php
  60. if ($deep == 1)
  61. {
  62. echo '<a href="../"><img src="' . $icon_dir . 'folder.png" >Wróć do example.com</a><br>';
  63. }
  64. elseif ($deep > 1)
  65. {
  66. echo '<a href="../"><img src="' . $icon_dir . 'folder.png" >W górę</a><br>';
  67. }
  68.  
  69. if ($dirlist !== NULL)
  70. {
  71. foreach ($dirlist as $key => $val)
  72. {
  73. echo $val;
  74. }
  75. }
  76.  
  77. if ($filelist !== NULL)
  78. {
  79. foreach ($filelist as $key => $val)
  80. {
  81. echo $val;
  82. }
  83. }
  84. ?>
  85. </p>
  86.  
  87. </body>
  88. </html>


Proszę o jakąś pomoc, albo chociaż naprowadzenie gdzie mogę szukać rozwiązania. Z góry dziękuję.
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 Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:29