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 :: Опредление не латин файлов

 PHP.SU

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


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

> Без описания
pantela
Отправлено: 16 Января, 2018 - 19:20:05
Post Id



Частый посетитель


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


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




Здраст,
На сервере имеются файлы, которые надо искать по scandir();.
Никак не могу определить напр. Русский

Пробовал напр.
PHP:
скопировать код в буфер обмена
  1. $dir = iconv("windows-1251", "UTF-8", $dir);
  2. $files = scandir($dir);


Хотел бы, даже китайские файлы определять ))

Спасибо.
 
 Top
pantela
Отправлено: 19 Января, 2018 - 14:26:11
Post Id



Частый посетитель


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


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




Всё так сложно, или наоборот просто... Растерялся
 
 Top
andrewkard
Отправлено: 19 Января, 2018 - 14:32:00
Post Id


Участник


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


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




может
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3. $iterator = new FilesystemIterator(".");
  4. $filelist = array();
  5. foreach($iterator as $entry) {
  6.     if (strpos($entry->getFilename(), "te") === 0) {
  7.         $filelist[] = $entry->getFilename();
  8.     }
  9. }
  10.  
  11.  

?
 
 Top
pantela
Отправлено: 19 Января, 2018 - 15:16:04
Post Id



Частый посетитель


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


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




Файлы так определяет, но вот русский файл нет ???????.txt

+ убрал тут с примера if (strpos($entry->getFilename(), "te") === 0) проверку что бы результат видеть, + он у меня и папку подхвотил, а мне только файоы надо.

Тут мне главное русский файл определить, а там scandir() думаю можно оставить.
 
 Top
andrewkard
Отправлено: 19 Января, 2018 - 16:23:11
Post Id


Участник


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


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





русский файл

а такие есть?

pantela пишет:
???????.txt


что то с кодировкой, раздебажте строку
 
 Top
pantela
Отправлено: 20 Января, 2018 - 00:14:04
Post Id



Частый посетитель


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


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




не понял о чём вы...
файл у меня с именим "Документ.txt" вот и сканировать не могу директорию...

Не помогло
PHP:
скопировать код в буфер обмена
  1. $dir = "../uploaded";
  2. $files = scandir($dir);
  3.  
  4. foreach($files as $value){
  5.   echo urldecode($value);
  6.   echo "<br />";
  7.  
  8.   echo iconv('utf-8', 'cp1252', $value);
  9.   echo "<br />";
  10.  
  11.   echo mb_convert_encoding($value, 'ISO-8859-1', 'UTF-8');
  12.   echo "<br />";
  13.  
  14.   echo utf8_decode($value);
  15.   echo "<br />";
  16.  
  17.   echo "<br />";
  18. }

(Отредактировано автором: 20 Января, 2018 - 00:42:50)

 
 Top
Строитель Модератор
Отправлено: 20 Января, 2018 - 00:49:30
Post Id



Участник


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


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




pantela, попробуйте таким способом
Спойлер (Отобразить)
 
 Top
pantela
Отправлено: 20 Января, 2018 - 01:16:41
Post Id



Частый посетитель


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


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




Нет всё равно не определяет... + у меня может быть не только кирилица, но и напр. китайский файл, как можно сделать универсально...?
Не думал что вопрос такой сложности был бы...
 
 Top
Строитель Модератор
Отправлено: 20 Января, 2018 - 02:21:53
Post Id



Участник


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


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




Строитель пишет:
Нет всё равно не определяет
Может проблема в чём-то ещё? т.к. я на локалке проверял, без iconv() символы в кодировке Windows-1251 отображались не правильно В затруднении
 
 Top
LIME
Отправлено: 20 Января, 2018 - 10:26:50
Post Id


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


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


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




http://i[dot]voenmeh[dot]ru/kafi5/Kam[dot]lo[dot][dot][dot]inform/UTF-8[dot]htm
проверяйте побайтно чтоб не было двухбайтных кодов
(Добавление)
2 - разбить строку посимвольно и проверять чтоб код каждого чтоб был не более 127
http://php.net/ord - первый комент

(Отредактировано автором: 20 Января, 2018 - 10:27:20)

 
 Top
pantela
Отправлено: 23 Января, 2018 - 13:03:13
Post Id



Частый посетитель


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


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




Чёрт не догоняю как сделать Огорчение
Перенесите пожалуйста тему в раздел "Напишите за меня", может помогут..
Спасибо.
 
 Top
Строитель Модератор
Отправлено: 27 Января, 2018 - 12:32:24
Post Id



Участник


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


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




pantela пишет:
Перенесите пожалуйста тему в раздел "Напишите за меня"
Перенёс.
 
 Top
pantela
Отправлено: 29 Января, 2018 - 10:36:59
Post Id



Частый посетитель


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


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




Вопрос решён, спс.
 
 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