TUTO PHP - Un filtre à (gros) mots

PrimFX Boris ('PrimFX') Le 24 juillet 2016

Envie de filtrer automatiquement certains mots sur les parties publiques de votre site internet (espaces commentaires, forums, etc.) ? Voici un petit tutoriel qui vous montrera deux des nombreuses façons qu'il existe pour réaliser ce genre de système  😉
  • Première méthode :
<?php

$bdd = new PDO('mysql:host=127.0.0.1;dbname=filtre;charset=utf8','root','');

$commentaire = "Salut ceci est un commentaire compose de pleins de mots !";

$req = $bdd->query('SELECT * FROM filtre');

$mots = [];
$rp = [];

while($m = $req->fetch()) {
   array_push($mots, $m['mot']);
   $r = '';
   for($i=0;$i<strlen($m['mot']);$i++) { 
      $r .= '*';
   }
   array_push($rp, $r);
}

var_dump($mots);
var_dump($rp);

$commentaire = str_replace($mots, $rp, strtolower($commentaire));
$commentaire = ucfirst($commentaire);

echo $commentaire;

?>
  • Seconde méthode :
<?php

$bdd = new PDO('mysql:host=127.0.0.1;dbname=filtre;charset=utf8','root','');

$commentaire = "Salut ceci est un commentaire compose de pleins de mots !";

$mots = $bdd->query('SELECT mot FROM filtre');
$mots = $mots->fetchAll(PDO::FETCH_COLUMN);

$rp = $bdd->query('SELECT rp FROM filtre');
$rp = $rp->fetchAll(PDO::FETCH_COLUMN);

var_dump($mots);
var_dump($rp);

$commentaire = str_replace($mots, $rp, strtolower($commentaire));
$commentaire = ucfirst($commentaire);

echo $commentaire;

?>

A propos de l'auteur

PrimFX
Boris ('PrimFX')

Je m'appelle Boris, j'ai 22 ans et je suis passionné d'informatique. Suite à mes études (Licence Informatique puis MSc Computer Science au Trinity College Dublin), je gère l'entreprise Single Quote co-fondée en 2019 et je profite de mon temps libre pour partager ma passion à travers des vidéos & articles 😃

Votre commentaire

Vous devez être connecté pour poster un commentaire. Se connecter ou Créer un compte

Commentaires 2