PHP использует переданное значение для открытия каталога, не работает

Это мой код

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Gallery</title>
    <script src="js/jquery-1.7.2.min.js"></script>
    <script src="js/lightbox.js"></script>
    <link href="css/lightbox.css" rel="stylesheet" />
</head>
<body> 
<?php
$value=$_GET["value"];
$handle = opendir("content/$value/gallery/");
while($file = readdir($handle))
{
    if($file !== '.' && $file !== '..')
    {
        do_something;
    }
}
?>

</body>
</html> 

Передав значение "Καθολική", выдает предупреждение: opendir(content/Καθολική/gallery/): не удалось открыть dir: такого файла или каталога нет. Но если я сделаю это:

$handle = opendir("content/Καθολική/gallery/");

это работает отлично.

Что-то связанное с кодировкой символов? Как я могу решить это? Спасибо.

2 ответа

Попробуй вот так

static public function read($dir, $ignore = array())
    {
        $files = scandir($dir);
        $dir_contents = array();
        foreach ($files as $file)
        {
            $pos = strpos($file, 'import');
            if ($file == '.' OR $file == '..' OR $pos !== false)
            {
                continue;
            }
            // Ignore files specified
            if ( ! in_array($file, $ignore))
            {
                $dir_contents[] = $file;
            }
        }
        return $dir_contents;
    }

Кодировка Καθολική не поддерживается кодировкой UTF-8. Попробуйте удалить мета-кодировку UTF-8 и попробуйте вот так.

<html>
<head>
<title>Gallery</title>
    <script src="js/jquery-1.7.2.min.js"></script>
    <script src="js/lightbox.js"></script>
    <link href="css/lightbox.css" rel="stylesheet" />
</head>
<body> 
<?php
$value=$_GET["value"];
$handle = opendir("content/$value/gallery/");
while($file = readdir($handle))
{
    if($file !== '.' && $file !== '..')
    {
        do_something;
    }
}
?>

</body>
</html> 
Другие вопросы по тегам