Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1387 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  recher chaine dans fichier texte

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

recher chaine dans fichier texte

n°756668
worldcinem​ag
Posté le 08-06-2004 à 15:45:45  profilanswer
 

salut,
 
j'ai un fichier .dat qui contient un email par ligne avec à chaque fois | à la fin du style :
t@o.com|
r@o.fr|
...
 
ce que je voudrais faire c'est vérifier si un email est déjà present au moment de l'insertion. je n'ai pas vraiment d'idée comment m'y prendre vu que j'y connais presque rien en fichiers.
 
merci d'avance
 
@+

mood
Publicité
Posté le 08-06-2004 à 15:45:45  profilanswer
 

n°756686
misterping​uin
Posté le 08-06-2004 à 15:53:20  profilanswer
 

voir avec strstr
 
si tu veux traiter sur chaque sous-chaine, utilises explode

n°756945
worldcinem​ag
Posté le 08-06-2004 à 18:03:58  profilanswer
 

j'ai essayé ce code mais ça marche pas, je vois pas comment je pourrais utiliser strstr !! :
 

Code :
  1. $filename = '/hom.../cgi-bin/....dat';
  2. $email =trim("$email|" );
  3. $email2 =trim("$email|\n" );
  4. $fd = fopen($filename, 'r');
  5. while (!feof ($fd)) {
  6.     $buffer = trim(fgets($fd, 4096));
  7.  
  8. if ($buffer != $email)
  9.  {
  10. $fp = fopen($filename, 'a');
  11. flock($fp, 2);
  12. fwrite($fp, $email2);
  13. fclose($fp);
  14. }
  15. echo "$buffer";
  16. echo "<br>";
  17.   }
  18.   fclose ($fd);


 
voila je vois bien que c pas qu'il faut faire mais je n'ai vraiment pas d'idée !
 
merci d'avance


Message édité par worldcinemag le 08-06-2004 à 18:04:21
n°756968
misterping​uin
Posté le 08-06-2004 à 18:40:54  profilanswer
 

worldcinemag a écrit :

j'ai essayé ce code mais ça marche pas, je vois pas comment je pourrais utiliser strstr !! :
 

Code :
  1. $filename = '/hom.../cgi-bin/....dat';
  2. $email =trim("$email|" );
  3. $email2 =trim("$email|\n" );
  4. $fd = fopen($filename, 'r');
  5. while (!feof ($fd)) {
  6.     $buffer = trim(fgets($fd, 4096));
  7.  
  8. if ($buffer != $email)
  9.  {
  10. $fp = fopen($filename, 'a');
  11. flock($fp, 2);
  12. fwrite($fp, $email2);
  13. fclose($fp);
  14. }
  15. echo "$buffer";
  16. echo "<br>";
  17.   }
  18.   fclose ($fd);


 
voila je vois bien que c pas qu'il faut faire mais je n'ai vraiment pas d'idée !
 
merci d'avance


 :non: on ne t'écrira pas ton script ici.
commences par comprendre comment fonctionne la gestion de fichiers en php et accessoirement le reste de ce langage >> www.phpdebutant.org
 
bon courage

n°756970
simogeo
j'ai jamais tué de chats, ...
Posté le 08-06-2004 à 18:46:35  profilanswer
 

moi je peux te dire comment je procederai ...
 
je lis mon fichier et le stockerai dans une variable.
 
ensuite je splitte le contenu de ma variable sur '|'
(indice : http://www.nexen.net/docs/php/anno [...] .split.php )
 
et enfin je regarde si mon email courant se trouve ds mon tableau
 
(indice 2 : http://www.nexen.net/docs/php/anno [...] -array.php )
 
 
[:itm]
 
 
si tu ne parviens pas a faire ca, c'est que t'y mets de la mauvaise volonté  [:simogeo]


---------------
from here and there -- \o__________________________________ -- la révolution de la terre, en silence
n°757306
worldcinem​ag
Posté le 08-06-2004 à 23:18:05  profilanswer
 

merci simogeo !
grace à tes conseils j'ai réussi à faire ce que je voulais.
 
je met le code au cas ou quelqu'un d'autre le voudrait :
 

Code :
  1. $filename = '.........dat';
  2. $email =trim("$email" );
  3. $email2 =$email.'|'."\n";
  4. $fd = fopen($filename, 'r');
  5. $liste_mails = array();
  6. while (!feof ($fd)) {
  7.     $buffer = trim(fgets($fd, 4096));
  8. list($email3) = split('[|]', $buffer);
  9.   array_push($liste_mails,$email3);
  10. echo "$email3<br>";
  11. }
  12. $email3=trim($email3);
  13.   fclose ($fd);
  14.   if (in_array ($email, $liste_mails)) {
  15.     print "Trouvé email";
  16.   }
  17.   else {
  18. $fp = fopen($filename, 'a');
  19. flock($fp, 2);
  20. fwrite($fp, $email2);
  21. fclose($fp);
  22. echo "inser $email2";
  23. }


 
encore merci !
 
@+


Message édité par worldcinemag le 08-06-2004 à 23:19:20

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  recher chaine dans fichier texte

 

Sujets relatifs
probleme : taille de fichier limitée à 2Mo en upload (ovh)...mettre la chaine de caractère comme il faut
Impression d'un fichier par une application J2EEdate fichier
place fichier XML et autresJe recherche le fichier powrprof.h
[css/javascript]la hauteur d'un bloc de texte???(Resolue) comment afficher le resultat dans les zones de texte ?
remplaer un caractere dans une chaine (champs texte) 
Plus de sujets relatifs à : recher chaine dans fichier texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR