Recherche dans un fichier texte
vitalefa
Messages postés
19
Date d'inscription
Statut
Membre
Dernière intervention
-
JooS Messages postés 2468 Date d'inscription Statut Membre Dernière intervention -
JooS Messages postés 2468 Date d'inscription Statut Membre Dernière intervention -
Bonjour, suite à de nombreuses recherche sur le web je n'ai pas trouvé mon bonheur c'est pourquoi je poste ce message.
J'ai un fichier de ma configuration ip ("ifconfig > ip.txt"), mais ce que je veux c'est récupérer le masque de sous-réseau de ce fichier texte et uniquement le masque de sous-réseau pour l'exploiter plus tard avec la fonction explode() qui me permettra de calculer l'adresse de broadcast, nombre de sous-réseau etc...
Avez-vous une petite idée ? En tout cas ce serai vraiment sympa car je sui dessus depuis pas mal de temps.
Je vous remercie d'avance
J'ai un fichier de ma configuration ip ("ifconfig > ip.txt"), mais ce que je veux c'est récupérer le masque de sous-réseau de ce fichier texte et uniquement le masque de sous-réseau pour l'exploiter plus tard avec la fonction explode() qui me permettra de calculer l'adresse de broadcast, nombre de sous-réseau etc...
Avez-vous une petite idée ? En tout cas ce serai vraiment sympa car je sui dessus depuis pas mal de temps.
Je vous remercie d'avance
A voir également:
- Recherche dans un fichier texte
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Fichier .dat - Guide
2 réponses
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+
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 !
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);
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()
}
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 =)