Comment interdire des mots dans un texte ou une chaîne

Attention, depuis PHP 5.5.0, certaines extensions SQL sans doute utilisées dans ce tutoriel peuvent être obsolètes et seront supprimées dans le futur, vous devez donc adapter les codes! Exemples ici.
Voici une petite fonction toute simple qui permet d'interdire certains mots ou groupe de mots dans une chaîne.
<?php
function vire($texte){
	//Tableau de mots interdits
	$mots_interdits = array('je','tu','il');
	//On passe le texte en minuscule
	$texte = strtolower($texte);
	//Compteur
	$i = 1;
	//On bloucle
	foreach($mots_interdits as $result){
		//strpos — Cherche la position de la première occurrence dans une chaîne
		$trouve = strpos($texte , $result);
		if($trouve !== false && $i == 1){
			echo 'Votre texte contient des mots interdits!';
			$i++;
		} 
	}
}
 
//On utilise la fonction
vire('Je suis et tu est ce qu\'il est.')?> 
Dans un premier temps on construit le tableau regroupant les mots interdits puis on passe la chaîne en minuscule via la fonction strtolower(). On utilise ensuite une boucle foreach() pour extraire tout les mots du tableau des mots interdits que l'on compare via l'utilisation de la fonction strpos().

Dans cette fonction, j'ai ajouté un compteur pour stopper la procédure de comparaison...Sans compteur et dans cet exemple, la fonction va retourner 3 fois la phrase : "Votre texte contient des mots interdits!" puisque les 3 mots interdits dans le tableau sont utilisés dans la phrase suivante: "Je suis et tu est ce qu'il est." On utilisant un petit compteur et en effectuant la comparaison " && $i == 1", on arrête la fonction sur le premier mot trouvé.

Pour utiliser cette fonction, on fait appel au nom de la fonction à la quelle on passe en argument le texte ou la variable souhaité.

Exemple :
//Exemple 1
vire('Ceci est un simple texte à vérifier.');
 
//Exemple 2
vire($ma_variable);
Voir/déposer un commentaire (0) | Signaler un problème