Maison >développement back-end >tutoriel php >Comment générer des slugs adaptés aux URL à partir de chaînes Unicode en PHP ?

Comment générer des slugs adaptés aux URL à partir de chaînes Unicode en PHP ?

Susan Sarandon
Susan Sarandonoriginal
2024-12-11 12:09:10628parcourir

How to Generate URL-Friendly Slugs from Unicode Strings in PHP?

Création de slugs adaptés aux URL à partir de chaînes Unicode en PHP

Les slugs sont une partie importante de la structure des URL, ce qui permet aux utilisateurs de s'en souvenir facilement. et naviguer sur des sites Web. Pour les chaînes Unicode, la génération de slugs peut s'avérer difficile en raison de la présence de caractères spéciaux. Cet article explore une fonction PHP spécialisée dans la conversion de chaînes Unicode en slugs compatibles avec les URL.

Question :

Comment créer un slug à partir d'une chaîne Unicode, comme la conversion "Andrés Cortez" à "andres-cortez" ?

Réponse :

La fonction PHP suivante gère efficacement cette tâche :

public static function slugify($text, string $divider = '-')
{
  // Replace non-alphanumeric characters with a divider
  $text = preg_replace('~[^\pL\d]+~u', $divider, $text);

  // Transliterate to ASCII
  $text = iconv('utf-8', 'us-ascii//TRANSLIT', $text);

  // Remove unwanted characters
  $text = preg_replace('~[^-\w]+~', '', $text);

  // Trim and remove duplicate dividers
  $text = trim($text, $divider);
  $text = preg_replace('~-+~', $divider, $text);

  // Lowercase and handle empty strings
  $text = strtolower($text);
  return empty($text) ? 'n-a' : $text;
}

Sur la base de la fonction fournie, la conversion de "Andrés Cortez" renverrait "andres-cortez" comme slug convivial pour les URL. Cette fonction gère de manière exhaustive la translittération, la suppression des caractères, le découpage et d'autres étapes nécessaires à la création de slug.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn