Maison >développement back-end >tutoriel php >Comment supprimer les caractères non alphanumériques et remplacer les espaces par des traits d'union dans les URL ?

Comment supprimer les caractères non alphanumériques et remplacer les espaces par des traits d'union dans les URL ?

Patricia Arquette
Patricia Arquetteoriginal
2024-10-24 02:53:29944parcourir

How to Strip Non-Alphanumeric Characters and Replace Spaces with Hyphens in URLs?

Suppression des caractères non alphanumériques et remplacement des espaces par des traits d'union

Lors de la construction d'URL, il est nécessaire de convertir les titres contenant divers caractères en chaînes propres composé uniquement de lettres et de chiffres. Cela implique de supprimer les caractères spéciaux et de remplacer les espaces par des traits d'union.

Implémentation à l'aide d'expressions régulières

Les expressions régulières (regex) offrent une solution efficace pour cette tâche. Voici comment obtenir le résultat souhaité :

Étape 1 : Remplacer les espaces par des traits d'union

$string = str_replace(' ', '-', $string);

Étape 2 : Supprimer les caractères non alphanumériques

$string = preg_replace('/[^A-Za-z0-9\-]/', '', $string);

Cette expression régulière supprime tous les caractères qui ne sont pas des lettres, des chiffres ou des traits d'union.

Utilisation :

echo clean('a|"bc!@£de^&$f g');

Sortie :

abcdef-g

Empêcher plusieurs traits d'union consécutifs

Pour garantir que plusieurs traits d'union consécutifs sont remplacés par un seul trait d'union, utilisez l'étape supplémentaire suivante :

$string = preg_replace('/-+/', '-', $string);

Cette étape remplace toutes les occurrences de deux ou plusieurs traits d'union consécutifs par un seul trait d'union.

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