Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > opendir() и русские симвалы


Автор: BloodWizard 19.8.2011, 10:57
Я пытаюсь открыть папку с русскими буквами в названии. Пишу в кодировке utf-8... 
Код

$path = $_SERVER['DOCUMENT_ROOT']."img/items/Phones/папка";
echo $path;
if($dir=opendir($path)){
    while ($ittem=readdir($dir)){
        $ittem = iconv( "cp1251", "utf-8", $ittem); 
        if($ittem!=".." && $ittem!="."){
            echo "<tr><td>".$ittem."</td><tr>";
        }
    }
    closedir($dir);
}


Код

failed to open dir: No error in ...

Автор: kovaldm 20.8.2011, 19:11
Эта папка реально существует?

Автор: JackGmen 20.8.2011, 21:09
Цитата
$path = $_SERVER['DOCUMENT_ROOT']."img/items/Phones/папка";
 
Забыл "/" поставить, вот так нужно:
Код

$path = $_SERVER['DOCUMENT_ROOT']."/img/items/Phones/папка";

Автор: Absinthe 22.8.2011, 13:24
BloodWizard, забей на перекодировку, все равно код будет работать на сервере, где с кодировками проблем нет - там все полностью в utf-8.
Именно поэтому веб-разработчики в качестве рабочей машины предпочитают мак или линукс - чтобы не писать костыли для обхода таких проблем.

В твоем случае же твоя ошибка в том, что кодировка файловой системы в винде - 866, а не utf-8, но открывать при этом надо с путями, кодированными в 1251 smile

Автор: $дмитрий 23.8.2011, 20:21
BloodWizard, 
Код

$ittem = iconv( "cp1251", "utf-8", $ittem);

Поменяй местами cp1251 и utf-8

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)