@Vladimir-Hetman

128 символов когда их всего 95?

Очень странная багуля. Функция подсчета символов iconv_strlen выдает,
что в имени файла 95 символов, а substr видит в имени файла 128 символов?
Как это понимать?

Имя файла:Dark Path (ОБТ). Repack от SEREGA-LUS Торрент Скачать моды для STALKER, Сталкер. SpAa-Team.html
63b3c2ad55fcf409889343.png

<form method ="POST" enctype="multipart/form-data">   
1- <input type="file" name="file1" size="10" /><br><br>
2- <input type="file" name="file2" size="10" /><br><br>
3- <input type="file" name="file3" size="10" /><br><br>
<input type="submit" value="Загрузить">
</form>


$file = $_FILES;
$names = ["file1", "file2", "file3"];

foreach($names as $items) {
if(!empty($file[$items]["name"]) ){
if($file[$items]["error"] ==0){
move_uploaded_file($file[$items]["tmp_name"], "Download/". $file[$items]["name"]);

echo "Имя файла:". substr($file[$items]["name"], 0, 128).    // по идее вместо 128 должно быть 95
"<br>Кол-во символов в имени файла: ".iconv_strlen($file[$items]["name"]);
}
}}
  • Вопрос задан
  • 134 просмотра
Решения вопроса 1
vfreelancer
@vfreelancer
php
В отличие от strlen(), iconv_strlen() учитывает кодировку строки. Длина string не обязательно будет соответствовать количеству байт в ней, так как в различных кодировках различные символы кодируются различным количеством байт, например, юникод может быть и двух-, и четырёхбайтным.

попробуйте mb_substr с указанием кодировки
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы