Comment convertir une chaîne de caractères en URL (slugify) en PHP ?

Introduction

Cette page explique comment convertir une chaîne de caractère en URL en PHP. En anglais, la chaine de caractère résultante s'appelle un "slug". "Slugify" est le verbe associé au processus de convertion. Par exemple : le blog de Lulu deviendra après transformation le-blog-de-lulu.

Code source en PHP

La fonction ci-dessous permet la convertion d'une chaîne de caractères en slug :

// Slugify a string
function slugify($text)
{
    // Strip html tags
    $text=strip_tags($text);
    // Replace non letter or digits by -
    $text = preg_replace('~[^\pL\d]+~u', '-', $text);
    // Transliterate
    setlocale(LC_ALL, 'en_US.utf8');
    $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);
    // Remove unwanted characters
    $text = preg_replace('~[^-\w]+~', '', $text);
    // Trim
    $text = trim($text, '-');
    // Remove duplicate -
    $text = preg_replace('~-+~', '-', $text);
    // Lowercase
    $text = strtolower($text);
    // Check if it is empty
    if (empty($text)) { return 'n-a'; }
    // Return result
    return $text;
}

Voir aussi


Dernière mise à jour : 05/11/2020