Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

FILTRE À GROS MOTS POUR LIVRE D'OR


Information sur la source

Catégorie :Chaîne de caratère Classé sous : chaine, livredor, filtre, mots Niveau : Débutant Date de création : 03/12/2007 Date de mise à jour : 08/12/2007 19:13:01 Vu : 5 484

Note :
1 / 10 - par 1 personne
1,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (35)
Ajouter un commentaire et/ou une note

Description

J'ai 54 ans et c'est mon premier post, j'en tremble encore...
C'est une fonction toute bête qui filtre les gros mots, à placer jute avant l'insert dans la page d'insertion d'un message d'un livre d'or ou d'un forum. Évidemment, là où l'anti-spam de Google se casse les dents, cette fonction se les casse aussi. Si le mot est dans la liste, le message sera interdit, mais s'il ne l'est pas ou orthographié différemment, il passera. Un ami à moi ne voulait pas entendre parler de son divorce sur son forum perso et tous les messages contenant ce mot ont été effectivement interdits, mais il a fallu qu'il rajoute séparation et le nom de son ex... Cependant en ce qui concerne les messages laissés sur les livres d'or et les forums par les robots spammeurs, c'est efficace à 100%
 

Source

  • <?php
  • function anti_grosmots($texte,$fichier,$rep) {
  • //on mets en minuscules et on enlève les accents
  • $texte = strtolower(OterAccents($texte));
  • //on élimine d'office http (robots spammeurs) et les caractères éventuels laissés par htmlentities
  • if(preg_match("/http/i", $texte || preg_match("/&lt;b&gt;/i", $texte))
  • {
  • header("Location:$rep");
  • exit;
  • }
  • $liste = file_get_contents($fichier);
  • $tab = explode("\r\n", $liste);
  • foreach($tab as $mot)
  • {
  • if (preg_match("/^$mot$/i",$texte))
  • {
  • header("Location:$rep");
  • exit;
  • }
  • }
  • }
  • ?>
<?php
function anti_grosmots($texte,$fichier,$rep) {
//on mets en minuscules et on enlève les accents
$texte = strtolower(OterAccents($texte));
//on élimine d'office http (robots spammeurs) et les caractères éventuels laissés par htmlentities
if(preg_match("/http/i", $texte || preg_match("/&lt;b&gt;/i", $texte))
{		
	header("Location:$rep");
	exit;
}	
$liste = file_get_contents($fichier);
$tab = explode("\r\n", $liste);
foreach($tab as $mot)
	{		
		if (preg_match("/^$mot$/i",$texte))
			{		
			header("Location:$rep");
			exit;
			}	
	}
}
?>

Conclusion

Quand les mises à jour seront finies, j'ajouterai le fichier d'insert, pour ceux qui ne savent pas (si, si, il y en a).
 

Historique

03 décembre 2007 12:06:16 :
tentative d'améliorer la lisibilité du code (colorisation)
03 décembre 2007 12:07:05 :
Re
03 décembre 2007 12:08:03 :
Ben, pas trouvé comment...
03 décembre 2007 12:11:13 :
encore un essai
03 décembre 2007 12:44:26 :
j'avais oublié un mysql_query
03 décembre 2007 14:18:25 :
corrections momentanées en attendant mieux
03 décembre 2007 14:19:22 :
corrections momentanées en attendant mieux
03 décembre 2007 18:02:43 :
mise à jour en suivant les conseils des gentils
03 décembre 2007 22:15:24 :
rectification du code avec les derniers conseils
04 décembre 2007 11:10:32 :
corrigé Location
04 décembre 2007 11:56:57 :
correction dans explode, \n, comme on me l'avait conseillé, est incomplet (hexadécimal!!!)
04 décembre 2007 13:03:55 :
enfin, introduction correcte du strpos, j'y ai brulé 5000 neurones, gagné 124 cheveux blancs, mais aussi une belle satisfaction, merci à tous
04 décembre 2007 13:48:52 :
j'ai honte
05 décembre 2007 09:00:04 :
ajout de preg_match pour la chaîne "http" et éviter ainsi les messages publicitaires avec liens
06 décembre 2007 10:04:07 :
meilleur placement du preg_match
06 décembre 2007 10:54:54 :
pour raccourcir la liste des gros mots qui ne sera ainsi qu'en minuscules et sans accent, on met le texte en minuscules et sans accents en utilisant le code fort utile donné par Arnotic
06 décembre 2007 12:40:26 :
petits allègement. On appelle donc la fonction créée par Arnotic
07 décembre 2007 01:56:51 :
strpos ne convient pas puisqu'il prend aussi une partie du mot, j'ai pensé que preg_match serait mieux, mais ça ne marche pas non plus...
07 décembre 2007 02:10:50 :
corrigé, mais en dehors du manuel php, ça fonctionne, mais j'ai fait comme avec ereg...
07 décembre 2007 11:31:16 :
rajout dans preg_match de balises js traduites en html provenant des attaques éventuelles faites par des petits plaisantins, attaques annulées par htmlentities, mais qui polluent quand même les messages.
08 décembre 2007 19:13:01 :
complément de commentaire

Commentaires et avis

signaler à un administrateur
Commentaire de depression le 03/12/2007 12:49:43 1/10

Ca ne donne pas envie de rire mais plutôt de pleurer.

global $database_x
global $x

Tu peux passer ces variables à ta fonction en paramètre par référence.

$mot = $tab["$i"];

$i est un entier, c'est affreux ce que tu fais.

mysql_select_db($database_x, $x);

Ca, tu le mets hors de ta boucle.

Une requête dans la base à chaque mot, c'est crade!

Mets plutôt tes gros mots dans un fichier, et fais un file_get_contents

Ensuite, Il y a strpos()

signaler à un administrateur
Commentaire de webdeb le 03/12/2007 13:02:09

Salut,

Je vais critiquer vivement ta source pour que tu te rends compte qu'elle n'est pas du tout adaptée... En effet, pour ce genre de choses, on n'utilise pas une base de données et encore moins ce que tu fais. C'est à dire d'aller taper dans la  base de données pour chaque mot du texte. Imagine un texte de 2000 mots. Tu vas faire 2000 requêtes SQL pour 1 visiteur. Si tu as 100 visiteurs dans la journée, tu auras fait 2 000 * 100 = 200 000 requêtes SQL rien que pour gérer les insultes dans ton livre d'or. Niveau performance c'est loin d'être fameux... Surtout que tu ne retires pas les mots inutiles comme "de, le, les, ce, te, me, des...". Pour optimiser le tout, tu aurais pu faire des regroupements et générer un histogramme. C'est à dire un tableau associatif qui indique le nombre d'occurences pour chaque mot. Ce qui donne globalement :

$tabMots =  array('mechant'=>3, 'con'=>8, 'merde'=>3, 'bonjour'=>1);

En faisant une requête SQL sur chaque mot 1 fois tu aurais déjà grandement amélioré les performances. Mais j'insiste toujours sur le fait qu'une base de données reste inappropriée pour ce genre d'applications.

Une solution aurait été tout simplement d'utiliser une Expreg (voir: expreg.com) bien que ce soit aussi coûteux en temps de traitement. Les manipulations de chaines de caractères par expression régulière sont toujours un peu lourdes mais restent au final bien plus performantes que ta solution.

Dernière solution qui est sans aucun doute la meilleure : la modération. En effet, il vaut mieux rendre invisible un post dans un livre d'or et le valider manuellement s'il convient à la nétiquette du site.

Autres points à revoir dans ton code :

1/ Tu n'as pas besoin de faire un mysql_select_db() à chaque itération de la boucle while(). Tu l'as fait une bonne fois pour toute dans ta page.
2/ $tab["$i"] est à remplacer par $tab[$i]. Ce n'est pas la peine de compliquer le code davantage avec des guillemets inutiles. D'ailleurs, ce sera aussi plus coûteux en traitement.
3/ Tu ne testes pas si un gros mot existe dans ta base. Tu fais la requête mais tu ne récupères pas le résultat.

Au final, ton code n'a rien d'intéressant et de performant...

++

signaler à un administrateur
Commentaire de armenak le 03/12/2007 13:16:44

Vous m'avez tué, merci...

signaler à un administrateur
Commentaire de armenak le 03/12/2007 13:24:59

ereg, j'y avait pensé, mais la phrase "j'habite à la Martinique" ne serait pas acceptée. Je vais plancher sur le fichier texte, merci encore.

signaler à un administrateur
Commentaire de webdeb le 03/12/2007 13:26:01

Nan pas ereg() mais preg_replace()

signaler à un administrateur
Commentaire de kiki67100 le 03/12/2007 14:04:11

Salut,,

Erff le code , tu peux faire un

$i++; a la place de "$i = $i+1;" et tu te deconnecte jamais te ta bdd ?

mysql_close();

revoie ta source

++

signaler à un administrateur
Commentaire de codefalse le 03/12/2007 15:41:38 administrateur CS

Bien que de toute facon, je suppose que parser un texte pour y trouver des caractères interdit soit quelque chose de très lourd, tu a beaucoup de maniere différentes :

1) Tu fait un explode de ton texte avec des espace, ensuite tu récupere depuis une bdd (pourquoi pas) la liste des mots interdits, que tu met dans un tableau, ensuite tu joue avec les in_array

2) Même idée, mais avec la fonction preg_replace_callback.
Tu sépare par espace, tu fait appel à ta fonction qui contient un tableau (un appel ! un seul appel à la bdd) de mots interdits, s'il est trouvé : soit tu fait un break et tu refuse l'ajout, soi tu le remplace par rien (moyen)

3) Encore plus simple, un preg_replace, premier parametre, ton tableau contenant les mots interdits, deuxieme parametre ce qu'il faut mettre en échange (genre co***rd=>mon coeur), le troisieme parametre .... ton texte

Et hop ! Tu gagne un temps ENORME ! :)

signaler à un administrateur
Commentaire de kiki67100 le 03/12/2007 15:48:54

Salut,

Il ya plusieur facon de faire moi j'avais penser à faire un fichier texte avec tout les mot interdit delimité par des retour a la ligne après tu fait un explode('\n',$contenuefichier); après tu fait un in_array

++

signaler à un administrateur
Commentaire de codefalse le 03/12/2007 16:14:28 administrateur CS

De toute facon il doit y avoir autant de possibilités que d'utilisateurs CS ;)

@Armenak, le but n'est pas de te "tuer" mais de te montrer tes points faibles. C'est pas forcément facile de se prendre des remarques du genre "ton code sert à rien, il est nul", etc. Je sais, je suis passé par là aussi :) Mais au final, si on accepte de comprendre nos erreurs, on progresse mieux, et on repart de plus belle.
Ce qui est dit n'est pas là pour te prouver que tu ne vaut rien et que tu ne peux pas faire partie du cercle très privé de cs (ce qui est totalement débile), le but, c'est de te montrer tes erreurs pour progresser.

Si on ne te dit que du bien, comment va tu évoluer ?

Maintenant que tu à vu ou sont tes erreurs, quelles sont les solutions pour optimiser ton code, refait le, améliore le, et repropose nous quelque chose de meilleur, vraiment meilleur. Peut-être déjà sur le forum, afin qu'il soit validé, et une fois que l'accord est trouvé, dans les codes.

Je ne veux pas te décevoir, mais je pense que ce code sera supprimé car il montre ce qu'il ne faut pas faire. Apres, je n'ai pas les droits de faire ca, on verra bien ce qu'en disent les admins.

Courage à toi et a bientot pour une amélioration ! :)

signaler à un administrateur
Commentaire de armenak le 03/12/2007 16:43:06

Merci
Le "vous me tuez" n'était qu'une manière de rire de moi. J'ai déjà commencé à travailler dans la direction indiquée, et je ne suis pas loin du but. Pas de problème si vous effacez tout ça. Effectivement, mes copains, de mon âge, ont bien rigolé, mais bon, certaines remarques ont été un peu raides. Et même si c'est la règle du jeu ici, effacez, oui!(j'ai sauvegardé la page).

signaler à un administrateur
Commentaire de kiki67100 le 03/12/2007 16:47:58

J'attent la mise a jour ! :)
je noterais a se moment là

++

signaler à un administrateur
Commentaire de codefalse le 03/12/2007 16:59:44 administrateur CS

Je noterai aussi à ce moment là :)
Bon courage

signaler à un administrateur
Commentaire de malalam le 03/12/2007 20:19:22 administrateur CS

Hello,

je suis très embêté...sincèrement, je ne devrais pas laisser cette source, je devrais la supprimer. Mais, Armenak, tu sembles sympathique, et avoir quelqu'un de ton âge (sans vouloir enfoncer, hein ;-) ) qui se met au php, ça ne donne pas envie de tuer sa nouvelle vocation dans l'oeuf.
Bref...je parlerai des solutions au problème que tu tentes de résoudre ici un peu plus bas. Tout d'abord, le code :
un foreach($tab as $mot)serait aussi efficace et prendrait moins de lignes que ton while() (et tu économiserais un count()).
ereg() est mauvais en terme de performances, SURTOUT utilisé comme ça. Si tu tiens à utiliser une expression régulière, utilise preg_match(), mais encore faut-il utiliser une expression régulière! Là, tu ne fais que vérifier si un mot est présent dans une chaîne. A ce compte la, strpos() est largement plus adapté. Mais là en l'occurence, ce n'est pas ce qu'il faut faire en effet. Ton code va interdire des mots qui ne devraient pas l'être.

Maintenant, le sujet du code. C'est une problématique importante...elle l'est de plus en plus d'ailleurs (Internet, soyons honnête, devient vraiment une décharge...les jeunes ne savent plus ni écrire, ni se comporter correctement); je pense que de l'eau va couleur sous les ponts avant que l'on trouve une solution plus efficace que la censure manuelle (voyez CS). Tenter de trouver un algo qui censure côté serveur (donc en php par exemple), c'est juste suicidaire (ou plutôt un meurtre: celui de votre serveur web). Impliquer en plus son serveur DB, cela devient du masochisme (ou du sadisme, donc, tout dépend de qul côté on se place).
Après tout, le fautif se trouve côté client. Donc je pense qu'une telle vérification devrait se faire côté client, dans l'absolu...sauf que, évidemment, côté client...c'est contournable par un esprit malintentionné -ce sera le cas à tous les coups- et un tant soit peu doué -ça heureusement, c'est beaucoup plus rare.
Du coup, on fait quoi ? Bah à mon avis, le meilleur moyen est de parvenir à instaurer une atmosphère et un système favorisant l'auto-censure. Nous sommes à l'ère du web 2.0, pour reprendre un terme à la mode. Il y a des tonnes de sites, de plus en plus, qui fonctionnent grâce aux utilisateurs; le contenu, ce sont eux, les utilisateurs. ET beaucoup de sites s'en tirent fort bien...pourquoi ? Parce ces sites ont réussi à faire en sorte que les utilisateurs aient intérêt à bien se comporter : ils seront populaires et aimés si tel est le cas...
C'est con, mais ça marche, et c'est vers cela que l'on tend. L'autocensure.

Ces petites considérations mises à part : si on veut vraiment coder une censure...je pense, moi, que je procèderais différemment. Ce sera un algo gourmand de toute manière. Alors si vraiment j'avais le besoin de censurer des données utilisateurs, et pas le temps/les ressources nécessaires, pour faire une censure manuelle, voilà ce que je ferais : puisque je ne fais pas confiance dans les saisies de mes uitilisateurs, je ne les mettrais pas en ligen de suite, ce serait du différé? à J+1 par exemple. Le soir, une tâche CRON tournerait et irait vérifier tous les messages en attente de validation, et les censurerait (là...un dico sans doute, en base vu que ça ne se ferait qu'une fois par nuit, et avec force d'expressions régulières), puis les validerait pour mise en ligne.

signaler à un administrateur
Commentaire de kiki67100 le 03/12/2007 21:04:17

malalam > Oui je suis dacord .
l'idée de l'autocensure c'est pratique sur un gestion de blog je pense qu'une validation avant le mise en ligne du commentaire serais bien on pourais l'autocensure par des ****

armenak > pour le code j'aurais fait un explode("\n",$file); dans ton fichier ca serais ainsi

fichier.txt:
1ème gros mot
2ème
3ème
ect...

sa serais plus simple de rajouté des gros mot a chaque fois :)

Voilà ++

signaler à un administrateur
Commentaire de guill76 le 03/12/2007 21:10:16

Salut,
Ouais c'est vrai mais dans ce cas faut faire le parsing en c ou en cpp et pas en php, ou un mix des 2 avec une tache php qui te fait l'extract des post des utilisateurs de la journée, une tache c++ qui te parse tes fichiers et qui te balance un petit rapport puis purge tes fichiers extraits et une derniere en php qui te supprime les posts correspondants trouvés dans ce rapport.

signaler à un administrateur
Commentaire de armenak le 03/12/2007 22:32:27

C'est pas trois commentaires ni un refus de mon code qui me dégouterait du php. C'est trop passionnant. Ceci dit je vous trouve bien sévères. Il y a quelques mois, j'aurais été le plus heureux de trouver un petit code tout fait comme celui-là.

Le but de cette fonction n'est que de comparer un texte avec une liste, et rien d'autre. Pas question de remplacer les mots. Imaginez url remplacé par mon chéri...

Amélioré en mettant tout en minuscules pour ne pas avoir de problème de casse (ça va se faire), je le trouve personnellement très utile, surtout avec une liste de mots qui peut s'agrandir à l'usage, un peu comme les logiciels anti-spam. C'est évident que la première fois qu'un mot non encore interdit sera utilisé, il apparaîtra. Quant à l'auto-censure,  l'expérience qui est un des avantages de mon âge m'autorise à rire doucement, c'est à mon tour cette fois-ci!

Malalam, j'ai pas trouvé comment utiliser strpos dans ce cas, désolé...

signaler à un administrateur
Commentaire de kiki67100 le 03/12/2007 22:52:20

armenak  >http://www.manuelphp.com/php/function.strpos.php

signaler à un administrateur
Commentaire de armenak le 03/12/2007 22:53:46

Mais quelle évolution depuis mon premier post! Merci à tous, même aux "méchants".

signaler à un administrateur
Commentaire de coucou747 le 03/12/2007 23:01:53

"Tenter de trouver un algo qui censure côté serveur (donc en php par exemple), c'est juste suicidaire"-> les filtres de bayes des anti spams sont parfaitement adapte a ce genre de source... Les filtres de bayes font intervennir des notions de proba et statistique avancee... mais ca ne tue en rien le serveur... (pour bien faire faudrait coder ca en sql directement)

sinon un preg_replace de ce genre :
$texte=preg_replace('/(vilain|traitre|mechant|)/', '<img src="bip.png" alt="censure"/>', $texte);
offre un filtrage de chaque mot mais pas du post en general


faudrait que j'ecrive un truc sur Bayes en SQL et si ca ne suffit pas, en C pour SQL ou php (chaud, mais utile)

signaler à un administrateur
Commentaire de armenak le 03/12/2007 23:22:35

Merci kiki67100 , mais je dois avoir les neurones sclérosés,je ne comprends pas ce qu'il faut faire. Je suis allé en tout premier sur cette page, mais en ce qui concerne ce script, je ne vois pas comment utiliser strpos. Si j'ai bien compris, strpos donne la position de $mot dans $texte. Et si $mot n'existe pas dans $texte, il me retournera false. Alors si j'écris :
if (strpos($mot,$texte)===false) , c'est à dire, si j'ai bien compris, que $mot n'existe pas dans $texte, il me manque les connaissances de syntaxe pour ce que je dois écrire avant
else
{
header("Location:voiedegarage.php");
exit;
}

signaler à un administrateur
Commentaire de coucou747 le 04/12/2007 06:54:20

if (strpos($mot,$texte)!==false){
header('Location: http://monsite/mondir/voiedegarage.php');
exit;
}

la Location dans un header ca prend une URL absolue

signaler à un administrateur
Commentaire de armenak le 04/12/2007 11:21:54

J'ai ajouté la correction pour le header, bien que cela fonctionne aussi sans. Par contre, la correction !==false ne fonctionne pas...

6.54, c'est de la passion, ça! Respect.

signaler à un administrateur
Commentaire de codefalse le 04/12/2007 12:51:11 administrateur CS

remplace la fonction ereg, car elle n'est pas performante (et deprecated :p)
Utilise preg_match si tu fait des expressions regulières, sinon strpos ();

quand tu veux une fonction en php, tu va dans ton navigateur et tu tape :
http://php.net/nomFonction

http://php.net/strpos

signaler à un administrateur
Commentaire de armenak le 04/12/2007 13:34:22

preg_match ne correspond pas à ce que je veux faire avec cette fonction, c'est à dire envoyer dans une voie de garage tous les poseurs de message avec des mots interdits. Par contre, j'ai réussi à placer strpos d'une manière fonctionnelle. Merci de votre acharnement.

signaler à un administrateur
Commentaire de coucou747 le 04/12/2007 13:36:47

max@debian:~$ php -r "if (strpos('test', 't')!==false)echo 'OK'.\"\\n\";"
OK
max@debian:~$ php -r "if (strpos('test', 'u')!==false)echo 'OK'.\"\\n\";"
max@debian:~$


ca marche parfaitement bien, mais il faut mettre strpos($texte, $mot) et pas strpos($mot,$texte)

signaler à un administrateur
Commentaire de malalam le 04/12/2007 22:27:56 administrateur CS

preg_match ne change rien à la redirection, je ne pige pas ton problème là-dessus ? Preg_match() ne fera que te renvoyer si oui ou non, ton motif est trouvé; ceci dit j'insiste aussi : si on suit l'algo de ton code, strpos à est largement préférable à preg_match().

signaler à un administrateur
Commentaire de armenak le 05/12/2007 09:08:59

MALALAM, j'ai eu hier soir une attaque de spam, et le filtre à gros mots n'y a rien fait puisqu'aucun des mots utilisés, des mots simples et courants, n'était dans la liste. Cependant la majorité de ces mots étaient des liens, aussi j'ai ajouté un preg_match comme tu me le conseilles, mais ciblé sur la chaine "http", ce qui m'évitera tous les liens.

signaler à un administrateur
Commentaire de audayls le 05/12/2007 22:51:51

Je ne connaissais pas le filtre de Bayes mais c'est une lacune que je vais vite combler car d'après ce que j'en ai vu çà m'a l'air interessant ! Merci coucou747 ^^

Sinon pour un filtre de la sorte une utilisation de phonex pourrait être pratique non ? Mais bon je pense que le serveur ne va pas apprécier XD

Au fait placer "preg_match("/http/i", $texte)" dans la boucle c'est totalement inutile.

signaler à un administrateur
Commentaire de armenak le 07/12/2007 11:47:38

Petit problème avec preg_match. Dans le manuel dit ça :

"\b, dans le masque, indique une limite de mot,"

J'ai donc, bon élève, codé comme ça pour ne récupérer $mot qu'en tant que mot et non en tant que partie éventuelle de mot:

preg_match("/\b$mot\b/i",$texte))

Et bien, ça ne fonctionne absolument pas, j'y ai gagné encore une centaine de cheveux blancs (regardez les heures dans l'historique!).

Par contre, en utilisant la syntaxe que j'avais prévue à l'origine pour la fonction ereg avnnt d'avoir été soumis à la lapidation par tout CS, c'est accepté par le serveur et donne le résultat escompté

if (preg_match("/^$mot$/i",$texte))

Allez m'expliquer ça...

signaler à un administrateur
Commentaire de Renfield le 07/12/2007 14:53:11 administrateur CS

qu'est censé faire le /i ?
(pardonnez mon ignorance...)

parce que dans mon outil http://www.vbfrance.com/codes/REGEXP-WORKSHOP_17331.aspx,

\bcon\b

fonctionne bien...

"ce petit contrat a été signé, tout a coup, ce con, que dis-je, ce conard, eu un air condescendant à ma grande déconvenue !"

signaler à un administrateur
Commentaire de coucou747 le 07/12/2007 15:08:55

http://www.google.fr/search?hl=fr&q=regexp+modificateurs
http://www.aliasdmc.fr/coursjavas/cours_javascript600.html

La propriété javascript ignoreCase de l'objet RegExp permet de connaître la valeur du modificateur i.

signaler à un administrateur
Commentaire de Renfield le 07/12/2007 15:41:44 administrateur CS

je pensait bien à un IgnoreCase....  mais j'etais pas sur de mon coup.

Merci

signaler à un administrateur
Commentaire de armenak le 08/12/2007 18:58:54

La fonction pour supprimer les accents d'Arnotic se trouve ici : http://www.phpcs.com/codes/SUPPRIMER-ACCENTS_12788.aspx

signaler à un administrateur
Commentaire de LaurentKOogar le 10/12/2007 03:30:45

enfin, j'ai reussi a me connecter, apres 5 minutes j'ai fini par comprendre que la connection sur phpcs bug sous IE6, alors j'ai pris mon FoFox ;)

pour le code, j'aime beaucoup la fonction OterAccents :==)

signaler à un administrateur
Commentaire de kiki67100 le 11/12/2007 02:55:29

Salut ,
Sinon tu peux faire un truc du genre en moin court

<?
$message="........";
$bannir = "mais|clé";

$chainereplace=preg_replace("/(^|[^a-zA-Z])($bannir)([^a-zA-Z]|$)/si",
                  '\\1'.$blurb.'\\3',$message);
?>

++ PS(je les trouver sur un site)

http://www.phpinfo.net/page/archives/astuces/php/expressions-regulieres/

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

PHP Mysql : la chaine la 'plus proche' d'une sous chaine. [ par irkiouak ] Bonjour chers developpeurs,J'ai cr&#233;e une formulaire de recherche&nbsp;d'un sujet (sur la&nbsp;table sujet) avec un champ texte critere.Ce que je Couper une chaine tous les X mots [ par 3xodius55 ] Bonjour (ou re-bonjour pour quelques uns^^),Est-ce que vous sauriez par hasard comment je pourrai couper une chaine tous les X mots.La chaîne en quest Extraire les mots d'une chaine [ par footalex12 ] Bonjour,Je souhaite extraire chaque mots d'une phrase ( j'ai des centaines de phrases à extraire )J'ai reussi une petite bidouille "pourrie" mais le Trier une table [ par LaurentKOogar ] Bonjour,Bonjour,Je re,Voila, c'est un algo de tri mais ca ne tri rien du toutle champ id_cat :&nbsp; INTle champ &nbsp;description&nbsp;: VARCHAR&nbsp Analyser la page pour créer un filtre [ par tony4758 ] Bonjour, je souhaiterai faire un code permettant d'analyser tous les mots de la page et d&#232;s qu'il trouve un mot comme "sexe" il affiche un texte MOTEUR DE RECHERCHE [ par loupile ] bonjour, j'ai fais un moteur de recherche, oui mais voila il ne fonctionne que sur une chaine ... normale  je recupère la valeur de mon champ de reche éliminercees mots d'une chaine et insere dans la base [ par hadjiphp ] Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : j'ai une chaine de caract fonction php + supprimer des mots dans une chaine [ par hadjiphp ] Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : je cherche une fonction récupérer des mots d'une chaine + insérer dans une base de données [ par hadjiphp ] Bonjour, merci pour ce site et souhaite de trouver tous ce que je veux. je vous remercie. Bonjour, j'ai une question : j'ai une chaine de carac


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,608 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.