Créer un filtre de mots en PHP : le guide geek pour censurer (ou pas) vos utilisateurs

Mukaz
30 Aug 2025, 08:00
34
1
3 Min de lecture
Illustration humoristique d’un robot geek qui censure des insultes en les remplaçant par des smileys et des animaux mignons

Avouons-le : on a tous déjà croisé un formulaire web transformé en festival de gros mots, insultes créatives ou spams venus de la quatrième dimension. Que ce soit pour un forum, une appli de chat maison ou un blog perso, il arrive un moment où on se dit :

"Bon, il me faut un bon vieux filtre à mots !".


Et comme on est des bricoleurs du code, autant le faire en PHP, ce bon vieux langage qui carbure encore la moitié du web (oui, même en 2025 !). Accrochez-vous, on part dans une petite mission geek où humour et code se croisent. 🚀


Pourquoi un filtre de mots ?


Pour éviter que votre chat devienne un concours d’insultes digne d’un lobby de MMORPG.
Pour filtrer du spam (exemple : “Achetez mes NFT de bananes dorées 🍌”).
Pour imposer un style (imaginez remplacer automatiquement chaque insulte par “Licorne magique 🦄”).
Bref, un filtre de mots c’est autant de la modération que du fun.


Premier jet : la base (le ciseau ✂️)


<?php $badWords = ["idiot", "stupide", "troll"]; $message = "Tu es vraiment un troll de compétition !"; $filteredMessage = str_ireplace($badWords, "[censuré]", $message); echo $filteredMessage; // Résultat : Tu es vraiment un [censuré] de compétition ! ?> 

Ici, on fait simple : un tableau avec des mots interdits, et un str_ireplace qui se charge de les remplacer par une étiquette bien carrée.


Niveau 2 : la subtilité (le katana ⚔️)


Parce qu’on sait que vos utilisateurs sont malins (genre écrire "tr0ll" à la place de "troll"), on va muscler un peu le filtre avec des expressions régulières :


<?php $patterns = [ '/t(r|R|4|@)oll/i', // toutes les variantes de "troll" '/stup(i|1|!|l)de/i' ]; $replacement = "[censuré]"; $message = "Wow, tu es vraiment stR0ll mais aussi stup1de."; $filteredMessage = preg_replace($patterns, $replacement, $message); echo $filteredMessage; // Résultat : Wow, tu es vraiment [censuré] mais aussi [censuré]. ?> 

On passe du petit filtre Ikea au sabre laser regex. Rien ne leur échappe. 🥷


Bonus : le filtre créatif (le mode geek qui s’amuse)


Pourquoi censurer quand on peut remplacer par des trucs rigolos ?


<?php $badWords = ["idiot", "stupide", "troll"]; $funnyReplace = ["génie incompris", "poète maudit", "gentil dauphin 🐬"]; $message = "Tu es un troll mais aussi stupide et idiot parfois."; $filteredMessage = str_ireplace($badWords, $funnyReplace, $message); echo $filteredMessage; // Résultat : Tu es un gentil dauphin 🐬 mais aussi poète maudit et génie incompris parfois. ?> 

Imaginez un forum où chaque insulte est transformée en compliments ou en animaux mignons. Internet serait peut-être un meilleur endroit 😅.


À retenir (et à boire 🍺)


Le filtre de mots en PHP, c’est facile à mettre en place.
Avec les regex, vous devenez un véritable ninja du nettoyage.


Bref, que ce soit pour garder vos espaces web propres ou pour vous amuser, coder un petit filtre de mots en PHP, c’est le genre de hack utile qui vous fera briller devant vos potes devs (ou au moins devant votre serveur Apache).

La vie est un équilibre entre ce que nous pouvons contrôler et ce que nous devons laisser aller. – Unknown

Abonnez-vous à notre newsletter

Recevez les derniers articles directement par e-mail en vous inscrivant à notre newsletter.