Здравствуйте хочу скопировать файл из одной папки в другую, папка в которую копируем файл подписана кириллицей, файлы копируются, но создают отдельно папку Передовой - с таким названием... а нужно чтоб просто скопировало в уже существующую папку с нормальный русским названием. Как это можно исправить?
p.s: .htaccess - AddDefaultCharset UTF-8 уже лежит в www/html --- Добавлено --- Ubuntu 16.04 <?php copy('/home/file/demo.bsp', '/var/www/html/демочка/demo.bsp'); ?> --- Добавлено --- /var/www/html/демочка/demo.bsp - тут должен лежать файл. но лежит он тут /var/www/html/Передовой/demo.bsp
Если я даже просто создам переменную $dir = '/var/www/html/демочка/'; $haves = scandir($dir); PHP Warning: scandir(/var/www/html/демочка/): failed to open dir: No such file or directory in /demo.php on line 2 PHP Warning: scandir(): (errno 2): No such file or directory in /demo.php on line 2 Я просто получаю файлы по этому пути... если не юзать русские символы то все работает... но мне нужно юзать русские.
ну, в какой-то момент оно теряется. В убунте есть русская локаль? php-файлы в какой кодировке? В какой приходят названия файлов?
как будто живем в средневековье.. что решений нет.. --- Добавлено --- я не очень силен в убунту но ls - русские символы показывает и через mkdir русские папки создает. кодировка Utf-8 без БООМ самого php скрипта. --- Добавлено --- $haves = scandir(iconv("UTF-8", "cp1251", $dir)); - пробовал так получил вовсе китай какой то scandir(/var/www/html/߭鯰/): failed to open dir:
Дай в консоли команду locale, покажи вывод. Linux изучай, помогает. Мне помогло, что я одно время его как домашнюю ось держал --- Добавлено --- locale --all
PHP: copy(dirname(__FILE__).'/index.php', iconv("UTF-8", "cp1251", dirname(__FILE__).'/й/demo.bsp')); катает