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:
<?php
$dirlist = NULL;
$filelist = NULL;
for ($i = 0; $i < $deep; $i++)
{
$icon_dir .= '../';
}
$icon_dir .= 'img_filelist/';
{
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != ".." && $file != "index.php")
{
{
$dirlist[$file] = '<a href="' . $file . '/"><img src="' . $icon_dir . 'folder.png" >' . $file . '</a><br>';
}
else
{
$filelist[$file] = '<a href="' . urlencode($file) . '"><img src="' . $icon_dir; {
$filelist[$file] .= pathinfo($file, PATHINFO_EXTENSION
); }
else
{
$filelist[$file] .= 'file';
}
$filelist[$file] .= '.png"> ' . $file . '</a><br>';
}
}
}
}
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>Lista plików</title>
</head>
<body>
<p>List of files:</p>
<p>
<?php
if ($deep == 1)
{
echo '<a href="../"><img src="' . $icon_dir . 'folder.png" >Wróć do example.com</a><br>'; }
elseif ($deep > 1)
{
echo '<a href="../"><img src="' . $icon_dir . 'folder.png" >W górę</a><br>'; }
if ($dirlist !== NULL)
{
foreach ($dirlist as $key => $val)
{
}
}
if ($filelist !== NULL)
{
foreach ($filelist as $key => $val)
{
}
}
?>
</p>
</body>
</html>
Proszę o jakąś pomoc, albo chociaż naprowadzenie gdzie mogę szukać rozwiązania. Z góry dziękuję.