Как осуществить транслитерацию имени загружаемого файла? (PHP)

[Удален]
3274

Доброй ночи!)

Есть код, отвечающий за загрузку файла:


$uploaddir = "/uploads/";
$uploadfile = $uploaddir.$_FILES['img_one']['name'];
move_uploaded_file($_FILES['img_one']['tmp_name'], $uploadfile);
$img_one = "/uploads/".$_FILES['img_one']['name'];

Как добавить функцию переименования имени файла, если оно на кириллице?

В какой момент это делать - когда файл во временной папке или уже после перемещения?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#1


$uploaddir = "/uploads/";
move_uploaded_file($_FILES['img_one']['tmp_name'], $uploaddir.translit($_FILES['img_one']['name']));
$img_one = "/uploads/".$_FILES['img_one']['name'];
✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
[Удален]
#2

LEOnidUKG, спасибо большое!

т.е. .translit - это уже встроенная функция и ничего больше использовать не нужно?

если так, то будет ли эта функция удалять/заменять пробелы?

LEOnidUKG
На сайте с 25.11.2006
Offline
1774
#3
X-Y-X:
LEOnidUKG, спасибо большое!
т.е. .translit - это уже встроенная функция и ничего больше использовать не нужно?
если так, то будет ли эта функция удалять/заменять пробелы?

Это не встроенная функция. Поищите готовые в инете. Я просто указал, где она должна стоять.

LEOnidUKG добавил 19.06.2011 в 03:15

ну вообще


function translit($st,$coder='utf-8')
{
$st = mb_strtolower($st, $coder);
$st = str_replace(array(
'?','!','.',',',':',';','*','(',')','{','}','[',']','%','#','№','@','$','^','-','+','/','\\','=','|','"','\'',
'а','б','в','г','д','е','ё','з','и','й','к',
'л','м','н','о','п','р','с','т','у','ф','х',
'ъ','ы','э',' ','ж','ц','ч','ш','щ','ь','ю','я'
), array(
'_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_','_',
'a','b','v','g','d','e','e','z','i','y','k',
'l','m','n','o','p','r','s','t','u','f','h',
'j','i','e','_','zh','ts','ch','sh','shch',
'','yu','ya'
), $st);
$st = preg_replace("/[^a-z0-9_]/", "", $st);
$st = trim($st, '_');
/* Удаляем одиночные буквы
$prev_st = '';
do
{
$prev_st = $st;
$st = preg_replace("/_[a-z0-9]_/", "_", $st);
}
while($st != $prev_st);
*/
$st = preg_replace("/_{2,}/", "_", $st);
return $st;
}

$uploaddir = "/uploads/";
$filename=translit($_FILES['img_one']['name']);
$uploadfile = $uploaddir.$filename;
move_uploaded_file($_FILES['img_one']['tmp_name'], $uploadfile);
$img_one = "/uploads/".$filename;

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий