|
|
|
| Такая штука, что если путь к папке содержит директории с названием на русском языке, то
is_dir папку не видит, переименовываю на english - видит, этот же скрипт у меня уже работал нормально на русском, правда под window-1251, а сейчас пробую под UTF-8, может в этом причина? | |
|
|
|
|
автор: ..... (25.10.2010 в 13:27) |
|
|
для: starpom
(25.10.2010 в 12:43)
| | >под UTF-8
всмысле utf-8 кодировка имён в файловой системе? или код скрипта в utf-8?
пробуйте с iconv() перекодировать строку пути, передаваемую функциям, в кодировку файловой системы. | |
|
|
|
|
|
|
|
для: .....
(25.10.2010 в 13:27)
| | Кодировка сайта , я так понимаю код скрипта в utf-8
Попробовал так:
$dir = iconv('window-1251','UTF-8','../foto/мои/1/folder');
|
Получил:
Wrong charset, conversion from `WINDOW-1251' to `UTF-8' is not allowed in
А если так:
$dir = '../foto/my/1/folder';
|
то работает
Сделал так :
$dir = iconv('CP1251','UTF-8','../foto/мои/1/folder');
|
Ошибки нет, но директория не читаеться как и раньше | |
|
|
|
|
автор: ..... (25.10.2010 в 15:33) |
|
|
для: starpom
(25.10.2010 в 14:34)
| | попробуйте вместо 'windows-1251' --> 'cp1251' | |
|
|
|
|
автор: ..... (25.10.2010 в 15:34) |
|
|
для: .....
(25.10.2010 в 15:33)
| | или кодировки местами наоборот :) | |
|
|
|
|
|
|
|
для: .....
(25.10.2010 в 15:34)
| |
$dir = iconv('cp1251','UTF-8','../skins/images/foto/Печерский/1/folder');
|
возвращает:
../skins/images/foto/Печерский/1/folder
$dir = iconv('UTF-8','cp1251','../skins/images/foto/Печерский/1/folder');
|
возвращает:
./skins/images/foto/���������/1/folder
вместо � идут пустые квадратики, а при копипасте они преобразовались в такие
наборы символов | |
|
|
|
|
|
|
|
для: starpom
(25.10.2010 в 15:56)
| | а я бы, для начала, вывел содержимое каталога средствами php.
как минимум - гадать не пришлось бы.
Нет такого имени window-1251 ... во всяком случае, реди стандартных. | |
|
|
|
|
|
|
|
для: Trianon
(25.10.2010 в 16:20)
| | не понял, что значит вывел содержимое каталога средствами php.
Я вывел, но мне для этого приходиться переименовывать папки по всему пути на англ. и соответсвенно прописывать путь с англ. папками и каталог чудесно выводиться, а вот если имена папок на русском, то не читает скрипт директорию, вот я и не могу понять почему. А понять надо , так как надо использовать папки с русскими названиями | |
|
|
|
|
|
|
|
для: starpom
(25.10.2010 в 16:34)
| | Выведя (получив) имя априори известного элемента каталога, мы сразу определяем, в какой кодировке представляет имена файловая система.
И соответственно, далее уже, при обращении к соответствующим функциям, имена преобразуем при необходимости в эту самую кодировку. | |
|
|
|
|
автор: ..... (25.10.2010 в 16:31) |
|
|
для: starpom
(25.10.2010 в 15:56)
| | так и должно быть :)
is_dir() должна принимать стоку из последовательности байтов которая и есть путь к файлу.
Выводится в браузер тоже просто последовательность байтов, просто браузер интерпритирует байты соответственно кодировке отображения страницы. И даже замалчивает что например байт "я" в кодировке cp1251 вообще не может представлять часть текста в кодировке utf-8.
Иногда можно просто сразу получать в скрипте имена в кодировке файловой системы, но тогда iconv() нужна если нужно ещё и выводить на страницы с другой кодировкой. | |
|
|
|
|
|
|
|
для: .....
(25.10.2010 в 16:31)
| | Если можно попроще , что сделать.
$dir = iconv('cp1251','UTF-8','../skins/images/foto/Печерский/1/folder');
|
Вот этот вариант уже привел меня в нужную папку, но выводит он не фотки, а какие-то дефолтные
браузерные приколы, которые сигналят , что это фотка. Причем в нужном количестве (тоесть мы в нужной папке), но при Ctrl+U наблюдаеться адресс такого вида:
<img src="../skins/images/flatsfoto/���������/1/Raevskogo112r780e/4.jpg"> | |
|
|
|
|
автор: ..... (25.10.2010 в 19:45) |
|
|
для: starpom
(25.10.2010 в 16:46)
| | вот здесь даже точно не скажу :)
значение неанглийских букв в аттрибутах src нужно rawurlencode'ировать, вопрос в какой кодировке их лучше вписывать для правильного кросс-понимания браузерами. и сервером который потом будет обрабатывать такие запросы | |
|
|
|
|
автор: ..... (25.10.2010 в 19:51) |
|
|
для: .....
(25.10.2010 в 19:45)
| | опера + локальный apache (windows) у меня понимает
как <a href="%d1%88%d0%bf%d0%be%d1%80%d0%b0.doc">шпора.doc</a>
так и <a href="шпора.doc">шпора.doc</a>
(страница в utf-8 ) | |
|
|
|