Savoir si une donnée est présente fichier txt

joboy84 -  
Xil Messages postés 351 Statut Membre -
Bonjour,

Je fais ma première demande sur ce forum car je sèche...J'ai du mal avec les opérations effectuées sur les fichiers.

J'ai un fichier texte nommé "blacklist.txt".

Je souhaite vérifier si l'ip de mon client est présente dans cette liste ou non...

J'ai donc commencé à faire comme suit:

<?php 

//fichier dont lequel les ip seront extraites
$fp =  file("blacklist.txt");

$ip = $_SERVER['REMOTE_ADDR'];

foreach($fp as $line) {

$res = //La je sais pas comment faire pour savoir si l'ip contenue dans la variable $ip est présente dans le fichier...

if ($res) 
       {
    echo 'Votre ip est blacklistée!';
       }
else
       {
    echo 'Votre ip n\'est pas présente dans notre base:';
       }
}
?>
A voir également:

2 réponses

armoni Messages postés 1 Date d'inscription   Statut Membre Dernière intervention  
 
SI j'ai bien compris ton problème la solution serai de lire ton fichier texte ligne par ligne,
puis de faire une comparaison.Si a la fin de ton fichier il y a pas l'addresse ip c'est qu'elle n'y figure pas et vis versa.
Pour lire le fichier ligne par ligne jusqu'a la fin du fichier:

while (!feof($fp)) {                     //on parcourt toutes les lignes

  $page= fgets($fp, 4096);  // lecture du contenu de la ligne

}


et pour la comparaison utilise la fonction strcmp(string str1,string str2);
0
Xil Messages postés 351 Statut Membre 257
 
Si tu n'as que des IP dans ton fichier, et chacune sur une ligne, tu peux simplement faire ceci :

//fichier dont lequel les ip seront extraites
$fp =  file("blacklist.txt");

$ip = $_SERVER['REMOTE_ADDR'];

if (in_array($ip,$fp)) {
   echo 'Votre ip est blacklistée!';
} else {
    echo 'Votre ip n\'est pas présente dans notre base:';
}



La fonction file crée un tableau dont la valeur chaque case est une ligne du fichier.
La fonction in_array recherche la valeur du premier argument dans le tableau en deuxième argument, et retourne TRUE si elle est trouvée.

pour info : https://www.php.net/in_array
0