Recherche dans un fichier texte
Fermé
vitalefa
Messages postés
19
Date d'inscription
lundi 13 janvier 2014
Statut
Membre
Dernière intervention
18 mai 2014
-
11 févr. 2014 à 08:53
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 13 févr. 2014 à 19:35
JooS Messages postés 2465 Date d'inscription mardi 22 janvier 2008 Statut Membre Dernière intervention 8 juin 2016 - 13 févr. 2014 à 19:35
A voir également:
- Recherche dans un fichier texte
- Fichier rar - Guide
- Fichier host - Guide
- Fichier iso - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
2 réponses
mpmp93
Messages postés
6652
Date d'inscription
mercredi 13 avril 2011
Statut
Membre
Dernière intervention
28 septembre 2015
1 339
11 févr. 2014 à 10:01
11 févr. 2014 à 10:01
Bonjour,
Ca dépend de la taille du fichier....
Si pas trop gros (maxi 1 à 2 Mo):
- faire un file_get_contents
- faire un "explode" sur les lignes avec le caractère "\n"
- ca donne un tableau où chaque enregistrement est une ligne de ce tableau - faire un foreach($tableau AS $ligne)
- si séparateur est ";" faire un explode de $ligne sur ";"
- rechercher l'item de ligne contenant l'adresse IP
Ca vous ira comme idée de départ?
A+
Ca dépend de la taille du fichier....
Si pas trop gros (maxi 1 à 2 Mo):
- faire un file_get_contents
- faire un "explode" sur les lignes avec le caractère "\n"
- ca donne un tableau où chaque enregistrement est une ligne de ce tableau - faire un foreach($tableau AS $ligne)
- si séparateur est ";" faire un explode de $ligne sur ";"
- rechercher l'item de ligne contenant l'adresse IP
Ca vous ira comme idée de départ?
A+
JooS
Messages postés
2465
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
12 févr. 2014 à 00:02
12 févr. 2014 à 00:02
Salut,
Regarde du coté des expressions régulières.
Regarde du coté des expressions régulières.
Bonjour Joos voici le code que j'ai réussi à mettre dans mon script, la chose à faire maintenant c'est spécifié que c'est le masque qu'il faut prendre.... Une idée ?
<?php
$contenu="ip.txt";
$fichier = file ($contenu);
$Regex="#Masque:#i";
for($i=0;$i<=0;$i++)
{
if(preg_match($Regex, $fichier[$i]))
{
echo "Preg match a bien fait son boulot";
}
}
?>
Merci et bonne journée !
JooS
Messages postés
2465
Date d'inscription
mardi 22 janvier 2008
Statut
Membre
Dernière intervention
8 juin 2016
228
Modifié par JooS le 13/02/2014 à 19:37
Modifié par JooS le 13/02/2014 à 19:37
Le but en te disant d'utiliser une expression régulière c'est en premier lieu pour éviter d'utiliser une boucle (performance).
Donc si j'ai bien compris, tu veux récupérer uniquement le masque de sous réseau, alors si tout les masques de sous réseaux sont précédés de la chaîne "Mask:", et que la chaîne "Mask:" n'existe que pour identifier un masque de sous réseau, j'imagine quelque chose comme ceci ...
Donc si j'ai bien compris, tu veux récupérer uniquement le masque de sous réseau, alors si tout les masques de sous réseaux sont précédés de la chaîne "Mask:", et que la chaîne "Mask:" n'existe que pour identifier un masque de sous réseau, j'imagine quelque chose comme ceci ...
<?php $content = file_get_contents('doc.txt'); $regex = '#Mask:([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3}).([0-9]{1,3})#'; preg_match_all($regex, $content, $masks); $masks = array_map( function($line) { return substr($line, 5); }, $masks[0] ); var_dump($masks);
11 févr. 2014 à 13:10
eth0 inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
blablablablablalbablalball bplpeasgp:013r945823
sdnkngksfn:237563273
Comme j'ai compris tu me demande de faire en gros ce code:
$iptxt=file_get_contents('ip.txt');
$tableauIfconfig= explode("\n", $iptxt);
foreach($tableauIfconfig AS $ligne)
{
//je ne sais pas quoi mettre dans mon test, tes deux derniers points me semble très flou !
if()
}
11 févr. 2014 à 13:19
eth0 inet addr:192.168.1.101 Bcast:192.168.1.255 Mask:255.255.255.0
C'est super sympa de m'aider merci vraiment =)