Миниблог

Транслит любых символов встроенным php

И вначале реклама, небольшой блок. Прошу не сердиться и не вносить ее в фильтры блокировщиков.

подробнее о рекламодателе можно узнать внутри блока
Спасибо. А теперь сам материал.

Мне тут одна нейросеть ;-) подсказала шикарную функцию, которая может транслитировать любой текст, с помощью встроенных возможностей в 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, но меня устроило и это решение. Спасибо

Похожее

draw I
draw I
draw I
draw I

 quote a81ca

Если вдруг вам было здесь полезно, уютно и приятно, что захотелось меня отблагодарить - вы можете пожертвовать мне на кофе.

 

i

Будет осуществлен переход на сайт Yoomoney

А это что? а это мой канал https://t.me/spoOky_blog

draw I

 


Внимание: На сайте могут присутствовать ссылки ePN

Мини-портфолио

очередной бесполезный блог