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

EDI, CMS, Outils, Scripts et API PHP Discussion :

traitement fichier .txt


Sujet :

EDI, CMS, Outils, Scripts et API PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut traitement fichier .txt
    Bonjour à tous,

    J'ai un fichier texte qui es de la forme :

    -------- Debut du fichier texte ---------
    test test test test test
    test test
    test test test test test test test
    test test
    test test test test test test test
    test test
    test test
    !
    a recuperer
    a recuperer
    a recuperer
    a recuperer
    a recuperer
    !
    test test test test test
    test test
    test test
    test test test test test
    test test
    test test
    test test test test test
    test test
    test test
    !
    a recuperer
    a recuperer
    a recuperer
    a recuperer
    a recuperer
    !
    ----------- fin du fichier texte ------------


    Je souhaite récupérer ce qu'il y a entre les "!" c'est à dire avoir 10 a récupérer.

    le fichier texte est à la racine de mes pages php.

    Je suis débutant et je ne vois pas du tout comment lui dire va de "!" à "!" sachant que ces des caractères identique.


    Je vous remercies de votre aide.

    Steven

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Tu pourrais utiliser preg_replace est une expression "sauf ce qui est entre !"
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut
    Merci de ta réponse.
    Donc je lit le fichier ligne par ligne et je faire un preg_replace avec une expression régulière ?

    Je vais tester ça alors.

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Non tu fais le preg_replace sur l'intégralité du fichier.

    Tu pourrais lire le fichier ligne par ligne et detecter les "!" mais c'est laborieux.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 59
    Par défaut
    ha ok merci, je teste ca et je reviens poster ce que j ai comme
    résultats ! par contre niveau regex je débute ! sa ressemblerais a quoi ?


    merci

    j'ai pensé à faire cela mais sa ne marche pas :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
     
    //ouvre le fichier et mets le contenu dans $fichier
    $fichier = file_get_contents("test.txt");
     
    //Ma regex
    $pattern = '!(.+)!';
     
    //et remplace par rien
    $replacement = ' ';
     
    echo preg_replace($pattern, $replacement, $fichier);

  6. #6
    Membre Expert
    Avatar de Eric2a
    Homme Profil pro
    Technicien
    Inscrit en
    Septembre 2005
    Messages
    1 225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Corse (Corse)

    Informations professionnelles :
    Activité : Technicien

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 225
    Par défaut
    Salut,

    L'expression ci-dessous ne considère les point d'exclamation comme des séparateurs uniquement s'ils sont seuls.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '/(^!$.+?^!$)/sm';
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Haut
    !
    Test avec un point d'exclamation ! dans le texte.
    Ce dernier ne sera pas considéré comme un séparateur de bloc.
    Il sera donc supprimé avec le texte.
    !
    Bas

  7. #7
    Expert confirmé

    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2010
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2010
    Messages : 5 418
    Par défaut
    sabotage va faire les gros yeux, mais en attendant que tu trouve la bonne expression régulière, je te donne une solution assez basique en testant les lignes :
    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
    $texte = file('texte_test.txt');
    $texte = array_map('trim',$texte);
     
    $i = false;
    $j = 0;
    $tab_result = array();
     
    foreach ($texte as $value)
    {
    	if ($value == '!') $i = !$i; else if ($i) $tab_result[$j][] = $value; 
    	if ($value == '!' && $i == true) $j++;
    }
     
    echo '<pre>';
    print_r($tab_result);
    echo '</pre>';

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Traitement fichier txt pour Excel
    Par jouclar dans le forum Général Python
    Réponses: 2
    Dernier message: 02/03/2011, 17h22
  2. [PERL]: Help script traitement fichier txt tabulaire
    Par Piccolupo13 dans le forum Langage
    Réponses: 2
    Dernier message: 21/08/2007, 20h37
  3. [CSV] Traitement fichiers txt/csv avec php
    Par cirtey dans le forum Langage
    Réponses: 4
    Dernier message: 26/01/2007, 16h46
  4. Traitement fichier .txt (gestion des '','')
    Par clemasson dans le forum Access
    Réponses: 1
    Dernier message: 11/12/2006, 15h26
  5. Optimiser traitement fichier [.txt]
    Par Metallic-84s dans le forum Langage
    Réponses: 14
    Dernier message: 16/03/2006, 13h33

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