par
@rthur » 02 févr. 2024, 00:04
Moi j'utilise la fonction suivante qui fait une translitération quelque soit la langue et les caractères utilisés, puis derrière le trim(preg_replace() permet de sécuriser le tout pour être sûr de n'avoir que des chiffres et des lettres au final :
<?php
function slugify(string $str, string $sep = '-'): string{
return trim(
preg_replace('/[^a-z0-9]+/', $sep,
\transliterator_transliterate("Any-Latin; Latin-ASCII; Lower()", $str)
), $sep);
}
echo slugify("@Pierre est complètement dingue d'œuf ! #egg En Suédois : ø æ ; En japonais : 字");
// affiche pierre-est-completement-dingue-d-oeuf-egg-en-suedois-o-ae-en-japonais-zi
Moi j'utilise la fonction suivante qui fait une translitération quelque soit la langue et les caractères utilisés, puis derrière le trim(preg_replace() permet de sécuriser le tout pour être sûr de n'avoir que des chiffres et des lettres au final :
[php]
<?php
function slugify(string $str, string $sep = '-'): string{
return trim(
preg_replace('/[^a-z0-9]+/', $sep,
\transliterator_transliterate("Any-Latin; Latin-ASCII; Lower()", $str)
), $sep);
}
echo slugify("@Pierre est complètement dingue d'œuf ! #egg En Suédois : ø æ ; En japonais : 字");
// affiche pierre-est-completement-dingue-d-oeuf-egg-en-suedois-o-ae-en-japonais-zi
[/php]