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
Форумы портала PHP.SU :: Версия для печати :: Проблема с кодировкой (русские буквы в названии файла)
Форумы портала PHP.SU » » Работа с файловой системой и файлами » Проблема с кодировкой (русские буквы в названии файла)

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

1. 3d_killer - 20 Апреля, 2014 - 09:05:52 - перейти к сообщению
Написал небольшой файловый менеджер для админки и возникла проблема при выводе папок и файлов с русскими именами. читаю папку так:
PHP:
скопировать код в буфер обмена
  1.  
  2. while (false !== ($filename = readdir($directory)))
  3.         {
  4.                 if ($filename != "." & $filename != "..")
  5.                         {
  6.                                 $files[] = mb_convert_encoding($filename, 'UTF-8','Windows-1251');
  7.                         }
  8.         }
  9.  

этой строкой:

удалось добиться что имя отображается нормально, но функции

не работают, перерыл кучу сайтов не нашел решения, может кто сталкивался с подобным?
2. 3d_killer - 21 Апреля, 2014 - 18:44:37 - перейти к сообщению
никто не знает?
3. Строитель - 21 Апреля, 2014 - 18:50:15 - перейти к сообщению
Не уверен, поможет ли в вашем случае - добавьте в .htaccess строку
AddDefaultCharset UTF-8
4. 3d_killer - 21 Апреля, 2014 - 18:54:45 - перейти к сообщению
строка есть и так
5. 3d_killer - 02 Мая, 2014 - 15:30:54 - перейти к сообщению
так ничего и не получилось, может кто-нибудь помочь?
6. esterio - 02 Мая, 2014 - 16:25:12 - перейти к сообщению
iconv
7. 3d_killer - 02 Мая, 2014 - 16:28:46 - перейти к сообщению
перепробовал разные комбинации пока стало что то получаться:
получили все файлы с директории потом:

а после перебираю в цикле:
PHP:
скопировать код в буфер обмена
  1. if(is_file(urldecode($full_url)))
  2.         {

и чтобы получить размер например:
PHP:
скопировать код в буфер обмена
  1. 'size'=>@filesize(urldecode($full_url))

Это разве нормально?
(Добавление)
странно что кодировка у меня везде UTF-8 почему получается столько преобразований, как это все упростить?
8. LIME - 02 Мая, 2014 - 16:44:04 - перейти к сообщению
это наверняка наблюдается в винде...да?
кодировка используемая ею и ее фс 1251(насколько знаю)
проверь в никсах без этих извращений...и вообще пересаживайся уже на нормальную ось
9. 3d_killer - 02 Мая, 2014 - 16:46:00 - перейти к сообщению
да не могу пока пересесть куча программ под винду, на nix еще не пробовал (все сие действие происходит под виндой на денвере), шас попробую на хосте
10. LIME - 02 Мая, 2014 - 16:49:46 - перейти к сообщению
у меня 2 оси стоит на 1ой железе
винду держу только для игр теперь
даже фотошоп пользую никсовый...но пришлось проявить волю для этого так как интерфейс не айс
уменьшаешь размер раздела в винде(от 7 это можно сделать) и ставишь на это место никс
хватит 10 гб за глаза
(Добавление)
если нужно могу поучавствовать в установке....зачтется в карме(в жизни не тут) доброе дело ))
11. 3d_killer - 02 Мая, 2014 - 17:01:50 - перейти к сообщению
блин, я тут мучаюсь, а оно все отлично работает без всяких перекодировок на сервере не под виндой...
(Добавление)
да с установкой я знаком постоянно этим занимаюсь, да и сервер моей фирмы дома тут стоит там XEN и есть машинка c дебианом просто как бы удобнее локально с файлами работать можно конечно подключить сетевой диск, но работаю то тут то там и на разных машинах и не в сети поэтому вебсервер с файлами таскаю на винте USB поэтому как то так
12. 3d_killer - 02 Мая, 2014 - 17:13:40 - перейти к сообщению
и еще один вопросик по скачиванию файла:
PHP:
скопировать код в буфер обмена
  1.  
  2. //**********************************************************************************************************
  3. //Скачать файл
  4. //**********************************************************************************************************           
  5. function get_download_file()
  6.         {
  7.                 $file = $_GET['url'];
  8.                 $arr_file=explode("/",$file);
  9.                 //var_dump($arr_file);
  10.                 $count=sizeof($arr_file)-1;
  11.                 header("Content-Type: application/octet-stream");
  12.                 header("Accept-Ranges: bytes");
  13.                 header("Content-Length: ".filesize($prefics.$file));
  14.                 header("Content-Disposition: attachment; filename=".$arr_file[$count]);
  15.                 readfile($prefics.$file);
  16.         }
  17.  
13. LIME - 02 Мая, 2014 - 17:14:18 - перейти к сообщению
3d_killer пишет:
да и сервер моей фирмы дома тут стоит
а если электричество кончится?
плохая практика
имеет смысл только если проект/-ты крупный и выгоднее держать серверную и спецов для обслуживания
иначе лучше арендовать в приличном датацентре
(Добавление)
а вопрос где?
14. 3d_killer - 02 Мая, 2014 - 17:14:54 - перейти к сообщению
если файл с пробелом то предлагает сохранить только первую часть например
новый текстовый документ.txt
предлагает сохранить файл как
новый

не могу понять что экранировать
(Добавление)
LIME по поводу сервера там не веб а удаленный доступ, бухгалтерия банк-клиент и т.д. терминал так сказать ибп с кучей аккумуляторов, да и свет отключают не часто
15. LIME - 02 Мая, 2014 - 17:17:46 - перейти к сообщению
попробуй имя брать в "
(Добавление)
там где отдаешь его в фс

 

Powered by ExBB FM 1.0 RC1