examiner un fichier texte

Eléphant du PHP | 186 Messages

27 avr. 2006, 12:30

Bonjour,

Voila j'ai besoin de vos connaissance

J'utilise un formulaire où les gens entre des mots genre (chat - chien - etc...)

Ensuite une fois le formulaire validé je les insère dans un ficier texte avec la commande ci-dessous
//$in2 contenant les mots tapés par l'internaute
$verif = fopen ("/home/xxxx/domains/xxxx/xxxx/xxxx/verif.txt","a+");
fputs ($verif,$in2."\n");
fclose ($verif);
Les données s'inscrive ensuite dans mon ficher texte de la manière suivantes en fontion du nombre de mots entrés

chat
chien - lapin - pigeon
Elephant - hiboux
etc...

ce que j'aimerais ensuite c'est qu'à la soumission d'un nouveau formulaire le fichier texte contenant les mots déjà inséré soit testé et si le mot est déjà présent dedans que cela mette un message d'erreur.

ca je ne sais pas comment faire pour lire les mots dans un fichier
Je sais que je dois utiliser implode mais je n'arrive pas trop

Quelqu'un pourrait m'aider merci je suis sur que ce n'est pas très dur

merci d'avance

Mammouth du PHP | 684 Messages

27 avr. 2006, 12:54

Salut.

Au plus simple, tu peux utiliser la fonction file().
<?php
if (isset($_GET['mot'])) {
    $mot = $_GET['mot'];
}
$tab_file = file('mon_fichier.txt');
foreach ($tab_file as $line) {
    if (eregi($mot, $line)) {
        echo 'Trouve.';
    }
    else {
        echo 'Pas trouve.';
    }
}
?>
Zigz4g

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

27 avr. 2006, 12:55

Hello,

Je pense que la solution la plus simple est de lire le fichier et de constituer un tableau avec les différents noms qu'il contient. Il te faut donc ouvrir le fichier (fopen), le parcourir ligne par ligne, et pour chaque ligne mettre les différents mots trouvés dans les cellules d'un tableau (si c'est bien le mot et pas la ligne, il te faudra boucler quand il y en a plusieurs sur une meme ligne pour avoir un seul mot par cellule)

Il te suffit alors d'utiliser la fonction inArray() pour savoir si le mot que tu récupère est déjà présent dans le tableau, te permettant ainsi de gérer l'erreur :)

Eléphant du PHP | 186 Messages

29 avr. 2006, 15:23

Merci j'ai reussi mais au final je me suis servis de mysql beaucoup plus simple :lol:

Merci pour tout encore

Invité
Invité n'ayant pas de compte PHPfrance

23 juin 2006, 06:27

Bonjour,

Voila j'ai besoin de vos connaissance

J'utilise un formulaire où les gens entre des mots genre (chat - chien - etc...)

Ensuite une fois le formulaire validé je les insère dans un ficier texte avec la commande ci-dessous
//$in2 contenant les mots tapés par l'internaute
$verif = fopen ("/home/xxxx/domains/xxxx/xxxx/xxxx/verif.txt","a+");
fputs ($verif,$in2."\n");
fclose ($verif);
Les données s'inscrive ensuite dans mon ficher texte de la manière suivantes en fontion du nombre de mots entrés

chat
chien - lapin - pigeon
Elephant - hiboux
etc...

ce que j'aimerais ensuite c'est qu'à la soumission d'un nouveau formulaire le fichier texte contenant les mots déjà inséré soit testé et si le mot est déjà présent dedans que cela mette un message d'erreur.

ca je ne sais pas comment faire pour lire les mots dans un fichier
Je sais que je dois <b style="color:black;background-color:#ffff66">utiliser</b> <b style="color:black;background-color:#a0ffff">implode</b> mais je n'arrive pas trop

Quelqu'un pourrait m'aider merci je suis sur que ce n'est pas très dur

merci d'avance