Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Будет ли код рабочим на Debian?

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: работа с файлами с русскими буквами в названии
borus
Отправлено: 05 Июля, 2017 - 15:39:27
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Здравствуйте!

Получаю список файлов в папке:
PHP:
скопировать код в буфер обмена
  1.     public function select_files($folder){
  2.         $fp=opendir($folder);
  3.         $internal_array = array();
  4.         while (false !== ($file = readdir($fp))) {
  5.             if(is_file($folder."/".$file)) {
  6.                 $internal_array[] = iconv('windows-1251','UTF-8',$file);
  7.             }
  8.         }
  9.         closedir($fp);
  10.         return $internal_array;
  11.     }

использую iconv, чтобы на локальном сервере, работающем из под Windows, видеть нормально названия файлов с русскими буквами.
Вопрос, если этот код будет исполняться где-нибудь на Debian, то навредит ли использование строки iconv('windows-1251','UTF-8',$file)?
Если да, то как сделать код универсальным, чтобы и из-под Windows и из-под *nix одинаково верно получать список файлов с русскими буквами в названии?
Дальше некоторые из найденных файлов php-код будет удалять, поэтому нужны их правильные полные имена
 
 Top
Sail
Отправлено: 05 Июля, 2017 - 19:58:54
Post Id



Участник


Покинул форум
Сообщений всего: 1131
Дата рег-ции: Февр. 2014  


Помог: 57 раз(а)




borus, помочь может, например: php_uname()
 
 Top
borus
Отправлено: 06 Июля, 2017 - 13:13:26
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Sail пишет:
borus, помочь может, например: php_uname()

спасибо!
 
 Top
borus
Отправлено: 05 Августа, 2017 - 15:24:20
Post Id



Новичок


Покинул форум
Сообщений всего: 52
Дата рег-ции: Май 2012  


Помог: 0 раз(а)




Здравствуйте!
В развитие темы: на Юниксах json_encode(scandir('путь_до_папки_с_файлами_с_русскими_буквами')) не будет приводить к false?
 
 Top
LIME
Отправлено: 05 Августа, 2017 - 15:37:40
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




нет
его не колышит кодировка значений
(Добавление)
по первому вопросу
iconv не нужен
более того, исходя из задачи он будет вреден(вернее практически бесполезен)
так как при удалении ОС не найдет файл после перекодировки имени
проверь
(Добавление)
borus пишет:
чтобы на локальном сервере, работающем из под Windows, видеть нормально названия файлов с русскими буквами.
видеть, а вернее отображать, это немного другое
ОС не смотрит на таблицу файлов глазами рускоговорящего человека))
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB