Ошибка в виде вопросов
Хочу переименовать файл через метод rename(), но выдает максимально непонятную ошибку в виде знаков вопроса. Может у кого была такая проблема?
Сам код:
foreach($files as $file) {
if ($file == "." or $file == "..") continue;
$f = stat($dir.$file);
if ($f['size'] > 20480 or is_numeric(basename($file)[0])) {
unlink($dir.$file);
continue;
}
else {
$name = basename($file);
$newName = "+".$name;
rename($name, $newName);
}
Ответы (1 шт):
Вопросики вместо букв появляются, когда браузер выводит текст в utf8 кодировке, но спотыкается о непонятные последовательности бит. Непонятны они браузеру потому, что они в другой кодировке (в вашем случае скорее всего win1251). При этом английские буквы универсально кодируются в любой кодировке, а вот, например, символы кириллицы кодируются по-разному. Поэтому английские слова в варнинге не исказились, а русские выглядят как набор вопросов.
Сообщение об ошибке вероятно зависит от операционной системы и ваш виндоуз пытается говорить с вами по-русски. Чтобы понять его, надо смотреть на это сообщение в win1251.
Впрочем, проблему видно и без чтения варнинга. Обратите внимание, что для других функций (stat и unlink) вы указываете директорию, а для rename не указываете. Как rename поймёт в какой директории вы хотите переименовать файл?
