Comment supprimer les caractères Spéciaux d’une chaîne de caractères en PHP ?

En tant que développeur PHP, parfois - Nous devons supprimer tous les caractères spéciaux d’une chaine de caractères et ne conserver que les lettres d’alphabets et/ou les nombres. Dans cet article, je vais vous expliquer deux méthodes permettant de le faire grâce à la fonction PHP, preg_replace. Et la fonction str_replace().

Utilisation de la fonction preg_replace en PHP

La fonction preg_replace() permet de rechercher et remplacer par une expression rationnelle standard. Donc, vous pouvez utiliser cette fonction pour supprimer les caractères spéciaux d’une chaine de caracteres. Preg_replace() utilise une expression régulière pour supprimer les caractères spéciaux de la chaîne.

Syntaxe de la fonction preg_replace en PHP

La syntaxe de preg_replace() dans sa forme simple est la suivante :

$result = preg_replace(string | array $pattern , string | array $replacement , string | array $subject);

  • $pattern : Le modèle à rechercher. Il peut s'agir d'une chaîne de caractères ou d'un tableau avec des chaînes.
  • $remplacement : La chaîne ou un tableau avec des chaînes de remplacement. Si ce paramètre est une chaîne et que le paramètre $pattern est un tableau, tous les modèles seront remplacés par cette chaîne.
  • $subject : C'est la chaîne de caractères que vous souhaitez filtrer (les caractères spéciaux).
  • $result : Le résultat retournée par la fonction preg_replace

Exemple d'utilisation de preg_replace

Comment supprimer les caractères spéciaux d’une chaine de caractères en PHP à l’aide de preg_replace?

 
    //Fonction ayant comme paramètre la chaine de caractères 
    function supprimerCaracteresSpe($value)
    {
        $result  = preg_replace('/[^a-zA-Z0-9_ -]/s', '', $value);
        return $result;
    }

    //Chaine de caractères contenant des caractères spéciaux
    $value = "Connaitre les caractères comme œ, ï @ & § est devenu indispensable";

    //Appel de la fonction supprimerCaracteresSpe()qui execute à son tour preg_replace
    $result = supprimerCaracteresSpe($value);

    //Affichage du résulat retournée par la fonction supprimerCaracteresSpe()
    echo $result;

    

L’exécution de ce code permet d’obtenir le résultat suivant :

Vous remarquez donc que tous les caractères spéciaux ont été supprimés.

Utilisation de la fonction str_replace()

Vous pouvez également utiliser une autre fonction PHP pour obtenir le même résultat si vous connaissez les caractères spéciaux à supprimer. Il s’agit de la fonction str_replace(), qui permet de remplacer toutes les occurrences dans une chaîne de caractères.

Syntaxe de la fonction str_replace en PHP

La syntaxe de la fonction str_replace dans sa forme simple est semblable à celle de preg_replace() :

str_replace ( array | string $search , array | string $replace , string | array $subject)

  • $search: La valeur à chercher
  • $replace: la valeur de remplacement
  • $subject: La chaîne de caractères ou le tableau sur lequel on va effectuer la recherche et le remplacement

Exemple

Comment supprimer les caractères spéciaux d’une chaine de caractères en PHP à l’aide de str_replace?

 
    //Fonction ayant comme paramètre la chaine de caractères 
    function supprimerCaraSpe($value)
    {
        $tab = array("@", "&", ",", "#", ";","'");
        //spécifier les caractères spéciaux rechercher dans la chaine $value
        $result = str_replace($tab, ' ', $value);
        return $result;
    }

    echo supprimerCaraSpe("# Elle n'est , pas ' ' & gentille @ ; ");

    

Conclusion

Les fonctions preg_replace et str_replace sont toutes deux utilisées en PHP pour effectuer des remplacements de chaînes de caractères, mais elles diffèrent dans leur fonctionnement.

La fonction str_replace est utilisée pour rechercher et remplacer des occurrences spécifiques d'une sous-chaîne dans une chaîne donnée. Elle utilise une correspondance exacte pour trouver les occurrences à remplacer.

La fonction str_replace retourne une nouvelle chaîne de caractères où toutes les occurrences de la sous-chaîne recherchée ont été remplacées par la sous-chaîne de remplacement.


En revanche, la fonction preg_replace utilise des expressions régulières (regex) pour rechercher et remplacer des motifs de texte plus complexes dans une chaîne donnée. Elle offre une plus grande flexibilité dans les correspondances de motifs.

La fonction preg_replace retourne une nouvelle chaîne de caractères où toutes les occurrences du motif de recherche défini ont été remplacées par la sous-chaîne de remplacement.


En résumé, str_replace est utilisée pour des remplacements de correspondance exacte, tandis que preg_replace offre une puissance supplémentaire en utilisant des expressions régulières pour effectuer des remplacements plus complexes.

Maitriser HTML et CSS: du débutant à Expert

Si vous souhaitez apprendre le HTML et le CSS, plongez dans l'univers captivant de la conception web avec le livre (ebook) "Maitriser HTML et CSS : du Débutant à Expert" publié sur Amazon. Vous trouverez dans ce livre tout ce que vous avez besoin pour développer vos compétences en HTML et CSS. Ce livre sera votre référence en HTML et CSS. C'est votre ticket pour un voyage extraordinaire où vous découvrirez les fondations du web, devenant ainsi le maître de votre propre espace en ligne. Cliquez sur l'image ci-dessous pour y accéder directement.