Comparaison chaine de caractère et fichier texte [Résolu]

martins13 66 Messages postés lundi 10 avril 2006Date d'inscription 19 juin 2008 Dernière intervention - 19 juin 2008 à 21:03 - Dernière réponse : martins13 66 Messages postés lundi 10 avril 2006Date d'inscription 19 juin 2008 Dernière intervention
- 19 juin 2008 à 22:38
Salut!
Je cherche à comparer une chaine saisie dans une textbox avec des chaines de caractères contenues dans un fichier texte. Ma variable $buffer récupère bien les chaines de caractères, la chaine saisie est bien présente, mon problème se situe au niveau de la comparaison. La fonction explode n'a pas l'air de fonctionner.
Si une perseonne a une idée, je suis preneur, voici mon code

 $handle=fopen("listeMail.txt","r");
        if ($handle) {
           while (!feof($handle)) {
        $buffer = fread($handle, 4096);
        $mail = explode(" ", $buffer);
        echo $buffer;
        echo $email;
        $i=0;
        for ($i=0; $i<300; $i++) {
        if ($mail[$i] == $email){echo "ok";}else{echo "non";}
        }
        }
           fclose($handle);
        }

Merci pour votre aide
Bonne soirée
Afficher la suite 

Votre réponse

5 réponses

martins13 66 Messages postés lundi 10 avril 2006Date d'inscription 19 juin 2008 Dernière intervention - 19 juin 2008 à 22:38
+3
Utile
Je te remercie pour ton aide je suis finalement passer par un fichier CSV et j'ai utilisé ce code :

$row = 1;
$handle = fopen("test.csv", "r");
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
    $num = count($data);
    echo " $num champs à la ligne $row: 

\n";
    $row++;
    for ($c=0; $c < $num; $c++) {
        echo $data[$c] . "
\n";
    }
}
fclose($handle);

Merci encore

Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de martins13
Bling 182 510 Messages postés lundi 27 novembre 2006Date d'inscription 5 juillet 2009 Dernière intervention - 19 juin 2008 à 21:40
0
Utile
Quel est le format de ton fichier ? une adresse par ligne, ou toutes a la suite séparées par des espaces ?

L'affichage de tes variables donne quoi ?

Que contient $email ?

Es tu sur que 300 est une valeur assez grande pour ta boucle de comparaison ? (a vue de nez, je dirais bien oui, mais pour optimiser, je mettrais for ($i = 0 ; $i < count($mail) ; $i++) )
Commenter la réponse de Bling 182
martins13 66 Messages postés lundi 10 avril 2006Date d'inscription 19 juin 2008 Dernière intervention - 19 juin 2008 à 22:20
0
Utile
Mon fichier est au format texte (.txt), les adresses sont à la suite séparées par des espaces. la variable $email contient bien l'adresse rentrée dasn la textbox. Ma variable $buffer contient donc les adresses à la suite par contre lorsque je fais le explode la variable mail n'a rien à l'intérieur.
Oui pour la boucle c'est assez grand je pense.

Merci
Commenter la réponse de martins13
Bling 182 510 Messages postés lundi 27 novembre 2006Date d'inscription 5 juillet 2009 Dernière intervention - 19 juin 2008 à 22:30
0
Utile
que donne un print_r ($mail); juste après le explode ?
Commenter la réponse de Bling 182
JoJo738 1267 Messages postés mercredi 7 juillet 2004Date d'inscription 29 juin 2010 Dernière intervention - 19 juin 2008 à 22:38
0
Utile
Hello

Pour ma part, j'utiliserais la focntion file_get_contents() pour lire le fichier ...
Ainsi que la fonction array_search() qui te permet de chercher un element parmis les valeurs d'un tableau.

Ca donnerais :

<?php

$email  = 'monemail@fai.com';
// On lit le fichier avec file_get_contents('mon_fichier.txt');
$file = file_get_contents(' listeMail.txt);
// Et on crée un tableau de donnée en découpant le fichier avec le caractère " "
$liste_email = explode(' ', $file);

// Le (array) dans "(array) $liste_email" permet de typé (forcé le type) array
if( array_search($email, (array)$liste_email)) )
{
    echo 'Email trouvé';
}
else
{
    echo 'Email, non trouvé';
}

?>

<hr />Si ma reponse te convient, merci de l'accepter ! 
Commenter la réponse de JoJo738

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.