|
|
|
|
function pao_dir_array($dirname) {
$dir = opendir($dirname);
global $fpx; global $toproot;
while(($file = readdir($dir)) !== false)
{
if($file != "." && $file != "..")
{
if(is_dir("$dirname/$file") OR is_dir(iconv('utf-8','windows-1251',"$dirname/$file")) OR is_dir(iconv('windows-1251','utf-8',"$dirname/$file"))) {
$array['dir'][] = str_replace("$fpx$toproot/","","$dirname/$file");
$array['abs'][] = "$file";
}
}
} // print_r($array);
return $array;
}
|
Не записывает в масив папок с русскими названиями.
Если вместо условий is_dir(...) поставить TRUE, тогда они записываютсья в массив, но вопросительными знаками .
Например Ελλινικα γλοσσα - ???????a ???ssa
РАШАН - ?????
Что подскажете, может еще какието кодировки для иконв. или как-то обработать строку "$dirname/$file" ?
..escape_string & htmlspecialchars не помогают.
Спасибо! | |
|
|
|
|
|
|
|
для: toproot
(04.09.2012 в 13:05)
| | А вы можете пояснить смысл такого условия? | |
|
|
|
|
|
|
|
для: confirm
(04.09.2012 в 15:13)
| | Мне нужно отообразить только папки. Для этого использую is_dir().
Если Вы про iconv() - не помогает. Думал может функция is_dir() определит нормально папку с иконв. но непомогает..
Задача только в том, чтоб функция is_dir("$dirname/$file") увидела папку.
а $file - не на английском языке.
Что мне зделать с "$dirname/$file" ? | |
|
|
|
|
|
|
|
для: toproot
(04.09.2012 в 16:59)
| | Ну а зачем вообще iconv()? В какой кодировке вы работаете, в такой у вас и будут создаваться имена директорий/фалов, откуда могут взяться у вас имена разнокалиберные?
Создайте на локальном хосте папку "Новая папка", положите в нее файлы (рус/анг имен), и запустите этот код:
<?
$file = array_map('basename',glob('новая папка/*'));
print_r($file);
|
Под Windows, у вас скрипт должен быть сохранен в кодировке 1251, и вы увидите массив имен файлов папки. Если он будет сохранен в кодировке utf-8, в которой сама Win не создает имен, то вы получите пустой массив. А вот в этом случае и примените тогда iconv(). Но чтобы семеро под лавками... это знаете ли какой-то мусор на сервере тогда. | |
|
|
|
|
|
|
|
для: confirm
(04.09.2012 в 18:05)
| | так я могу и из базы данных вынять имена если мне нужно, но в данном случае мне нужно именно прочесть реальные имена. нужно просканировать файловую систему.
Может попробую через стандартную конструкцию fopen итд. | |
|
|
|
|
|
|
|
для: toproot
(04.09.2012 в 23:26)
| | А glob() значит не может вам выдать чего у вас там в системе? Причем тут те или иные функции? glob(), это замена совокупности функций opendir(), readdir()...
Пишите на чем хотите, вопрос к вам иного характера - на кой черт у вас чехарда с iconv()? | |
|
|
|
|
|
|
|
для: confirm
(04.09.2012 в 23:35)
| | П-нял с glob() спасибо. завтра попробую. | |
|
|
|