Мне тут одна нейросеть ;-) подсказала шикарную функцию, которая может транслитировать любой текст, с помощью встроенных возможностей в php модули.
Суть такова, у меня url создавался из title заголовка массива данных. Проблема в том, что даже если очистить его от всех символов stripTags и всевозможными htmlspecialchars или htmlentities, все равно невозможно предугадать на каком языке будет передан заголовок и таким образом url не будет единотипным и может включать пробелы. Вот, с помощью нейросетей, узнал, что в php есть целый класс Transliterator причем с еще старых версий, который помогает с этим (Данный класс предоставляет функциональность транслитерации строк.). в целом это от расширения PHP Intl (Internationalization) extension и поддерживает множество языков и предоставляет гибкие настройки.
Итак
function createSlug($string) {
// Создаем объект Transliterator
$transliterator = \Transliterator::create('Any-Latin; Latin-ASCII; [\u0100-\u7fff] remove');
// Транслитерируем строку
$slug = $transliterator->transliterate($string);
// Приводим к нижнему регистру
$slug = strtolower($slug);
// Заменяем все неалфавитные символы на тире
$slug = preg_replace('/[^a-z0-9]+/i', '-', $slug);
// Удаляем начальные и конечные тире
$slug = trim($slug, '-');
return $slug;
}
Ну и также через composer еще существуют библиотеки URLify или slugify, но меня устроило и это решение. Спасибо