IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[Fichier] Problème fichier texte


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Points : 14
    Points
    14
    Par défaut [Fichier] Problème fichier texte
    Bonjour, j'ai une page php qui ouvre est affiche un fichier texte. jusque la tout va bien. Le problème c'est que j'aimerai faire une recherche dans le fichier texte et afficher que la ligne qui m'intéresse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    <?
    $file[] = "<('-')>(_0(_0_NoV - LOLO:to403872 - 82.238.148.208";
    $file[] = "00--REDA--BAND-00 - UNICORNI8F7BB1:to8651211612 - 86.71.8.155";
    $file[] = "00--REDA--BAND-00 - UNICORNI8F7BB1:to8651211612 - 86.71.8.33";
    $file[] = "--REDA-BAND--00 - UNICORNIBFAA8B:to8651211612 - 81.220.122.137";
    //$file[] = "01-joen - 01JOEN:to438810 - 82.171.191.189";
    //ou
    //$file = file("chemin du fichier texte pas rtf");
     
     
    foreach($file as $line_num => $line) {
    	if(eregi("(.*) \- (.*)\:(.*) \- (.*\..*\..*\..*)",trim($line),$res)) {
    		$logs[$line_num]['tag'] = $res[1];
    		$logs[$line_num]['pc'] = $res[2].":".$res[3];
    		$logs[$line_num]['ip'] = $res[4];
    	}
    }
     
     
     
     
    if(is_array($logs) && is_array($logs[0])){
    ?>
    	<tr>
    <?
    	foreach($logs[0] as $entete => $null) {
    ?>
    	<td><? //echo $entete ?></td>
    <?
    	}
    ?>
    	</tr>
    <?
    	foreach($logs as $id_log => $log_tab) {
    ?>
    	<tr>
    <?
    	foreach($log_tab as $champ => $valeur) {
    ?>
    	<td><span class="style2"><? echo $valeur ?></td>
    <?
    	}
    ?>
    	</tr>
    <?
    	}
    }
    ?>

  2. #2
    Futur Membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 10
    Points : 7
    Points
    7
    Par défaut
    essaye avec la fonction fseek()
    elle te permettra de placer ton pointeur où tu veux dans ton fichier

    synthaxe : fseek($fichier,entier);

    l'entier te servira à placer ton pointeur...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 37
    Points : 14
    Points
    14
    Par défaut
    mais le problème de la fonction fseek() c'est qu'elle place le pointeur a une ligne donnée, le problème c'est que je connais pas le nom de la ligne, est-ce qu'il y a une fonction qui peut donner les numéro de ligne ou se trouve le ou les champ(s) recherché

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    83
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 83
    Points : 74
    Points
    74
    Par défaut
    j'ai retouché légerement la regexp (qui pourrais etre largement mieux) pour ne pas a avoir utilisé un trim, afin d'utiliser explode() sur la chaine " - ".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
       if(eregi("(.*)[ ][-][ ](.*)[:](.*)[ ][-][ ](.*[.].*[.].*[.].*)" ,$line,$res)) 
                 $data = explode(" - ",$line);
     
    // $data[0] correspond a ton tag
    // $data[0] correspond au nom du pc
    // $data[0] correspond a l ip

Discussions similaires

  1. [VBA-excel] import de fichier txt sans délimiteur de texte
    Par VBBBA dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/01/2008, 05h49
  2. Réponses: 21
    Dernier message: 15/12/2006, 15h54
  3. Réponses: 2
    Dernier message: 09/12/2006, 18h01
  4. Afficher contenu d'un fichier dans une zone de texte
    Par Dimitri_87 dans le forum GTK+ avec C & C++
    Réponses: 8
    Dernier message: 23/09/2006, 14h09
  5. fichier envoye value de champ texte à lui même
    Par mat10000 dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/04/2005, 07h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo