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 :

Découper une ligne de caractère en mutliples sous-chaines en fonction d'un séparateur.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut Découper une ligne de caractère en mutliples sous-chaines en fonction d'un séparateur.
    Bonjour à tous, après recherche et n'ayant pas trouvés de solutions à mon problème, je vous l'expose personnellement :

    J'ai besoin de récupérer des informations contenues dans un fichier texte qui sont sous la forme (les lignes ne sont en réalité pas séparés, tous est collé ensemble, je met des séprateur (Ligne1 et ______) pour facilité la lecture de l'exemple ) :

    Ligne 1:
    _______________________________________________

    m79ccol, DC250, m79ccol, 3840_MEDECINE_DU_TRAVAIL_SEPTEMBRE2009A.pdf, 167 Ko, DC-250, 29/09/2009 10:39:22, PS, , 1, 1, 1, 0, OK, , , , DC250 impression, 2, 29/09/2009 10:39:22, 29/09/2009 10:39:22, 29/09/2009 10:39:22, 29/09/2009 10:39:22, 29/09/2009 10:39:24, 29/09/2009 10:39:24, 29/09/2009 10:39:40, 29/09/2009 10:41:02, , Magasin 4, A4, Standard (64-105g/m2)
    _______________________________________________

    ligne 2:
    _______________________________________________

    m79ccol, DC250, m79ccol, 3841_MEDECINE_DU_TRAVAIL_OCTOBRE_2009A.pdf, 161 Ko, DC-250, 29/09/2009 10:40:17, PS, , 1, 1, 1, 0, OK, , , , DC250 impression, 1, 29/09/2009 10:40:17, 29/09/2009 10:40:17, 29/09/2009 10:40:17, 29/09/2009 10:40:17, 29/09/2009 10:40:19, 29/09/2009 10:40:19, 29/09/2009 10:40:57, 29/09/2009 10:41:03, , Magasin 4, A4, Standard (64-105g/m2)
    _______________________________________________

    ligne 3:
    _______________________________________________

    m79ccol, DC250, m79ccol, 3844_COMMUNICATION_carte_visistes_Beaupeu_gde.pdf, 108 Ko, DC-250, 29/09/2009 13:04:52, PS, , 12, 12, 12, 0, OK, , , , DC250 impression, 1, 29/09/2009 13:04:52, 29/09/2009 13:04:52, 29/09/2009 13:04:52, 29/09/2009 13:04:52, 29/09/2009 13:04:54, 29/09/2009 13:06:25, 29/09/2009 13:04:54, 29/09/2009 13:06:25, , Autosélection, A4, Épais 2 (177-220g/m2)


    (le fichier fait plusieurs milliers de lignes, il faut que je le rende la lecture des données plus facile )
    En prenant en compte le caractère " , " pour sépérateur, existe t'il un moyen de récupérer chaque itérations, ( pour les mettre dans un tableau par exemple, et les classés).

    J'ai pensé à la fonction explode(), mais est-il possible de l'appliquer à autant de séparateurs?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Inscrit en
    Décembre 2009
    Messages
    80
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 80
    Par défaut
    Oui, explode devrait fonctionner. Mais il va falloir en faire deux en cascades je dirais, un pour repérer les sauts de lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lignes = explode("\n", $texte);
    et sur chaque ligne un autre explode pour repérer les mots
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $mots = explode(", ", $ligne);

  3. #3
    Membre confirmé Avatar de speedy_g
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    213
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 213
    Par défaut
    Il y'a quelques fonctions toutes faites pour les fichiers csv

    http://php.net/manual/fr/function.fgetcsv.php

  4. #4
    Candidat au Club
    Inscrit en
    Janvier 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 2
    Par défaut
    Merci à vous ! Effectivement, transférer le fichier texte en format csv sous excel permet de l'exploiter facilement grâce à la fonction fgetcsv !

    Une mise en forme en tableau et le tour est joué !

    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
     
    <?php
     
    echo "<table>\n";
     
    $row = 0;
    $handle = fopen("mycsvfile.csv", "r");
     
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
        if ($row == 0) {
            // Première ligne du fichier CSV.
            // Contient les entêtes de colonnes du tableau.
            $num = count($data);
            echo "<thead>\n<tr>";
            $row++;
            for ($c=0; $c < $num; $c++) {
                echo "<th>" . $data[$c] . "</th>";
            }
            echo "</tr>\n</thead>\n\n<tbody>";
        } else {
            // Traite le reste des lignes du fichiers CSV
            $num = count($data);
            echo "<tr>";
            $row++;
            for ($c=0; $c < $num; $c++) {
                echo "<td>" . $data[$c] . "</td>";
            }
            echo "</tr>\n";
        }
    }
    fclose($handle);
     
    echo "</tbody>\n</table>";
    ?>
    Merci.

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

Discussions similaires

  1. Découper une chaîne de caractères
    Par gege2061 dans le forum Langage
    Réponses: 9
    Dernier message: 07/03/2008, 19h59
  2. Découper une chaîne de caractères
    Par The Lord of Nesquik dans le forum C
    Réponses: 5
    Dernier message: 04/02/2007, 00h20
  3. Réponses: 4
    Dernier message: 31/10/2006, 16h47
  4. [VBA-E] découper une chaîne de caractère
    Par jagwar dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 18/07/2006, 14h07
  5. Comment découper une chaîne de caractères en VBA
    Par TomPad dans le forum Access
    Réponses: 3
    Dernier message: 23/06/2005, 09h58

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