IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Création de black liste


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 118
    Par défaut Création de black liste
    Bonjour

    J'ai utilisé une fonction censure() qui fait l'élimination de certaine mots existe dans un fichier excel cette fonction me permettre de ne pas prendre en considération toutes les mots de ce fichier csv. voici le code de la fonction:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    <?php
    function censure($chaine) {
    	$row = 1;
    	$censure = array();
    if (($csv = fopen("C:/xampp/htdocs/txtmeaning/core/censure.csv", "r")) !== FALSE) {//ouverture du fichier
        while (($data = fgetcsv($csv, 1000, ",")) !== FALSE) {
            $num = count($data); // $num reçoi le nombre de champ par ligne
            $row++;
            for ($c=0; $c < $num; $c++) {
               $censure[]=" ".$data[$c]." ";// le variable $consure contient une chaine de caractaire qui se compose des données des ligne de fichier csv
             }
        }  
    	    fclose($csv);//fermuture de fichier csv
    }	
    	print_r($censure);
    	return trim(str_replace($censure, ' ', " $chaine ")); //ici je veux remplacer les éléments de la chaîne par ' '
    }
    ?>
    La fonction fait sont rôle à 90% mais il y à deux problème:

    • 1: Problème avec le retour chariot il prendre en compte le mot dans ce cas

    • 2: Problème c'est un mot qui existe dans le csv répété deux fois ou plus juste à coté ex: le mot de inclue dans le csv répété comme çade de de de de ...)


    Ou le problème exactement?? je ne sais pas!

  2. #2
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Ta variable $censure est un tableau, pas une chaîne de caractères.
    Bref, voici un moyen d'obtenir ce que tu veux :
    Tu fais d'abord un tableau avec ta chaîne, grâce à une fonction explode, puis tu convoques ton tableau de mots censurés, puis tu compares, et tu incrémentes uniquement si c'est pas tabou...
    C'est une méthode...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    function tableauMotsCensures() {
    	$row = 1;
    	$censure = array();
    	if (($csv = fopen("censure.csv", "r")) !== FALSE) {
    		while (($data = fgetcsv($csv, 1000, ",")) !== FALSE){
    			$num = count($data);
    			$row++;
    			for ($c=0; $c < $num; $c++) {
    			array_push($censure,$data[$c]);//ceci est un tableau PHP
    			}
    		}  
    		fclose($csv);
    		return $censure;
    	}
    }	
    $maChaine='coucou je veux voir si ma chaine possède un mot tabou tutu et pourquoi pas plusieurs tata !';
    $mesMots=explode(' ',$maChaine);
    $mesMotsInterdits=tableauMotsCensures();
    $maChaineNettoyee='';
    foreach($mesMots as $unMot){
    	if(in_array($unMot,$mesMotsInterdits)){
    		//on ne fait rien
    	}
    	else{
    		$maChaineNettoyee.=$unMot.' ';
    	}
    }
    echo $maChaineNettoyee;//si tutu et tata étaient sur le csv, ils disparaissent
    ?>
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  3. #3
    Membre très actif
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Décembre 2010
    Messages
    118
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Chercheur en informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2010
    Messages : 118
    Par défaut
    Merci pour votre réponse Dendrite, c'est utile comme même mais un problème se pose avec les retours à la ligne !

    exemple: table des mots interdits: (un, de,ok, est, etc)
    Machaine( blabla un, ok blabla blabla. retour à la ligne un blabla retour à la ligne est blabla ...)

    Machaine affiche : blabla , blabla blabla. retour à la ligne un blabla retour à la ligne est blabla ...

    !!!

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 60
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Concrètement, c'est quoi tes retours à la ligne ?
    Il ya moult variantes
    http://fr.wikipedia.org/wiki/CRLF

    sans compter la html entity

    ecommercialDiese33; que je mets ici en toutes lettres pour qu'elle ne soit pas interprétée par le HTML...

    2 solutions : soit tu ne les stockes pas ainsi dans ton csv, soit tu mets ton retour à la ligne dans ta liste noire...

    Je penche pour la première solution. Moi je n'ai pas le problème que tu décris. Fais-tu ton csv à partir d'un éditeur de texte genre blocnotes ou notepad++ ou bien un traitement de texte genre Word ?

    Il faut bien sûr passer par un simple éditeur de texte, et tu n'auras aucun problème.
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. création d'une liste d'après un fichier en c
    Par ghislain118 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 21/12/2005, 11h56
  2. Réponses: 5
    Dernier message: 13/10/2005, 11h19
  3. [generic] pb création d'une List []
    Par yoplaboom dans le forum Langage
    Réponses: 6
    Dernier message: 08/07/2005, 14h01
  4. Création d'une liste ...
    Par keryss dans le forum Access
    Réponses: 6
    Dernier message: 21/10/2004, 10h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo