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 :

Cherche et stoker une chaine entre 2 chaines dans ligne fichier texte


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 22
    Par défaut Cherche et stoker une chaine entre 2 chaines dans ligne fichier texte
    Bonjour à tous.

    voilà un gros problème ou je planche depuis un moment.
    Mon point de depart est un fichier pdf compose de plusieurs pages.
    chaque page contient les infos d'un client : nom, prenom, adresse etc...

    j'ai donc converti ce pdf en 1 fichier texte.
    apres consultation ce fichier txt ne contient qu'une seule ligne avec toutes le informations des clients

    Conretement un exmple de la ligne :

    facture 1 nom ... : mrxadresse .......: adresse1facture 2 nom ... : mryadresse .......: adresse2facture 3 nom ... : mrzadresse .......: adresse3

    j'ai essaye de recuperer dans un premier temps tous les noms et les afficher.

    voici mon script

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $source = "mon fichier.txt" ;
    $source2=fopen($source,"r") or die("Fichier manquant");
    while (!feof($source2))
    	{
    $chainedebutnom = "nom ... : " ;
    $chainefinnom = "adresse .......:" ;
    $source3 = file_get_contents_utf8($source);
    $un = explode($chainedebutnom,$source3);
    $deux = explode($chainefinnom,$un[1]);
    echo $deux[0]; 
    	}
    fclose($source2);
    Le resultat ma'ffiche bien "mrx".

    Mais comment faire pour afficher en fait tous les noms ( puis pa la suite les stockees dans base sql )

    Par exemple
    mrx
    mry
    mrz

    j'ai tout essayé : foreach, while mais rien n'y fait.

    Si vous avez des idees je suis preneur.

    merci à tous.



    Pour info voici ma fonction "file_get_contents_utf8"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    function file_get_contents_utf8($fn) 
    {
         $content = file_get_contents($fn);
          return mb_convert_encoding($content, 'UTF-8',
              mb_detect_encoding($content, 'UTF-8, ISO-8859-1', true));
    }

  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
    Pus simplement avec une expression regulière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $fichier = "mon fichier.txt" ;
    $contenu = file_get_contents_utf8($fichier);
    preg_match_all('#nom \.\.\. : (.+)adresse \.\.\.\.\.\.\.: (.+)\b#U', $contenu , $output, PREG_SET_ORDER);
    foreach ($output as $value) {
      echo $value[1] . ':' . $value[2];
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 22
    Par défaut Merci et merci ...dernier question
    Merci pour ton aide.
    J'ai donc travaillé avec la fonction preg_match_all que je n'avais jamais utilisé.
    Ensuite j'ai refait ma chaine de caractere car le continu de mon fichier etait un exemple.

    Par contre aurais tu une idée pour travailler l'adresse car en fait l'adresse se cumule, exemple :
    1 ALLEE CHAMPLAIN77 LESIGNY ou 2 ALLEE DES CHEVREAUX77185 LOGNES

    Donc le code postal peut etre sur 2 ou 5 caracteres.
    Le numéro de rue present ou absent.

    As tu une idee de traiter la chose ?

  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
    A quoi ressemble ton vrai fichier ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 22
    Par défaut Bout de fichier
    Voici un bout de mon fichier avec 4 clients

    Nom, prénom......................... : Mme PICSOUNom marital........................... : RANTANPLANNationalité............................. : FRANCAISEDate et lieu de naissance.......: 18/03/1952 àAdresse privée....................... :2 RUE DU PAVET77176 SAVIGNY LE TEMPLENom, prénom......................... : M. DALTON FranþoisNom marital........................... :Nationalité............................. : FRANCAISEDate et lieu de naissance.......: 10/08/1954 àAdresse privée....................... :3 ALLEE CHAMPLAIN77 MELUNNom, prénom......................... : Mme IRON MAN Nom marital........................... : SPIDERMANNationalité............................. : FRANCAISEDate et lieu de naissance.......: 01/11/1968 àAdresse privée....................... :8 ALLEE DES CHEVREAUX77185 MEAUXNom, prénom......................... : M. XXX FABRICENom marital........................... :Nationalité............................. : FRANCAISEDate et lieu de naissance.......: 16/11/1947 à PARISAdresse privée....................... :1 SQUARE PARIS-VERSAILLES77 LE MEE-SUR-SEINE



    J'arrive donc à récupérer mes infos mais comment traiter l'adresse en distinguant le code postal et la ville de manière distincte ?

    Merci

  6. #6
    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
    Si le code postal était bien renseigné on pourrait isoler la séquence de 5 chiffres mais ce n'est pas le cas (77 MELUN)
    On peut bricoler une expression qui marchera dans 90% des cas.

    Comment passes-tu du PDF au texte ?
    Je ne pense pas que les expressions soient collées (CHEVREAUX77185) ; Il y a plus probablement un caractère non affichés entre les deux.
    Est-ce que tu peux mettre en pièce-jointe ici ton fichier txt ?
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 07/07/2011, 13h19
  2. [Batch] Rechercher et renommer une chaine de caractère complexe dans un fichier texte
    Par mrcanardwc dans le forum Scripts/Batch
    Réponses: 11
    Dernier message: 24/06/2011, 13h02
  3. Réponses: 14
    Dernier message: 12/12/2007, 17h08
  4. Réponses: 11
    Dernier message: 05/11/2007, 14h38

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