Maison >développement back-end >tutoriel php >Comment puis-je créer des Slugs adaptés aux URL à partir de chaînes en utilisant PHP ?

Comment puis-je créer des Slugs adaptés aux URL à partir de chaînes en utilisant PHP ?

DDD
DDDoriginal
2024-12-07 05:53:16620parcourir

How Can I Create URL-Friendly Slugs from Strings using PHP?

Création de slugs adaptés aux URL à l'aide de PHP

Lors de la création d'applications Web, il est souvent nécessaire de convertir les chaînes en formats adaptés aux URL, appelés slugs. Par exemple, une chaîne comme « Andrés Cortez » doit être convertie en « andres-cortez » pour être utilisée dans une URL.

Pour y parvenir, une fonction PHP personnalisée peut être utilisée :

public static function slugify($text, string $divider = '-')
{
  // replace non letter or digits by divider
  $text = preg_replace('~[^\pL\d]+~u', $divider, $text);

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

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

  // trim
  $text = trim($text, $divider);

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

  // lowercase
  $text = strtolower($text);

  if (empty($text)) {
    return 'n-a';
  }

  return $text;
}

Cette fonction utilise une série d'expressions régulières et de conversions de caractères pour transformer la chaîne d'entrée en slug. Il remplace d'abord tous les caractères non alphanumériques par le séparateur spécifié. Ensuite, il translittère les caractères non-ASCII en leurs équivalents ASCII les plus proches. Les caractères indésirables sont supprimés et la chaîne est coupée et convertie en minuscules. Les séparateurs en double sont supprimés pour garantir un slug propre.

En appelant cette fonction slugify(), les développeurs peuvent facilement créer des slugs à partir de chaînes Unicode, fournissant ainsi une solution simple pour un texte convivial pour les URL dans les applications PHP.

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