$maxLength) { $slug = mb_substr($slug, 0, $maxLength); // Убедимся, что слаг не заканчивается на дефис после обрезки $slug = rtrim($slug, '-'); } return $slug; } */ function generate_slug_from_keyword($keyword, $maxLength = 50) { // Приводим строку к нижнему регистру $slug = mb_strtolower($keyword); // Заменяем пробелы и любые пробельные символы на дефисы $slug = preg_replace('/[\s]+/', '-', $slug); // Убираем любые символы, которые не являются буквами или цифрами любого алфавита (включая Unicode), дефисами $slug = preg_replace('/[^\p{L}\p{N}\-]+/u', '', $slug); // Убираем повторяющиеся дефисы $slug = preg_replace('/-+/', '-', $slug); // Удаляем дефисы в начале и в конце $slug = trim($slug, '-'); // Ограничиваем длину слага if (mb_strlen($slug) > $maxLength) { $slug = mb_substr($slug, 0, $maxLength); // Убедимся, что слаг не заканчивается на дефис после обрезки $slug = rtrim($slug, '-'); } return $slug; }