Обновлен устаревший метод Подготовка имени файла или директории
This commit is contained in:
@@ -739,19 +739,30 @@
|
||||
* @param string $st
|
||||
* @return string
|
||||
*/
|
||||
function prepare_fname($st)
|
||||
{
|
||||
$st = strip_tags($st);
|
||||
function prepare_fname($st)
|
||||
{
|
||||
$st = strip_tags($st);
|
||||
|
||||
$st = strtr($st,'ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ',
|
||||
'abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщьъыэюя');
|
||||
// 1. Сначала пробуем использовать новый метод
|
||||
if (function_exists('mb_strtolower')) {
|
||||
$st = mb_strtolower(trim($st), 'UTF-8');
|
||||
} else {
|
||||
// Запасной вариант (старый), если mbstring не установлен
|
||||
$st = strtr($st,'ABCDEFGHIJKLMNOPQRSTUVWXYZАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЪЫЭЮЯ',
|
||||
'abcdefghijklmnopqrstuvwxyzабвгдеёжзийклмнопрстуфхцчшщьъыэюя');
|
||||
}
|
||||
|
||||
$st = translit_string(trim($st));
|
||||
// 2. Транслитерация
|
||||
if (function_exists('translit_string')) {
|
||||
$st = translit_string($st);
|
||||
}
|
||||
|
||||
$st = preg_replace(array('/[^a-z0-9_-]/', '/--+/'), '-', $st);
|
||||
// 3. Финальная чистка
|
||||
// Заменяем всё, что не буквы и не цифры, на дефис
|
||||
$st = preg_replace(array('/[^a-z0-9_-]/', '/--+/'), '-', $st);
|
||||
|
||||
return trim($st, '-');
|
||||
}
|
||||
return trim($st, '-');
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user