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 :

Extraction variables depuis un fichier texte.


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 42
    Points
    42
    Par défaut Extraction variables depuis un fichier texte.
    Bonjour,

    je rencontre un petit soucis pour extraire des variables depuis un fichier texte
    Mon fichier texte se présente ainsi:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    IDuser=0144Password=3vasvsExpiration30days
    IDuser=0145Password=sq59vcExpiration30days
    IDuser=0146Password=rvy9raExpiration30days
    IDuser=0147Password=kvyyjtExpiration30days
    IDuser=0148Password=v6aahfExpiration30days
    et je souhaiterai obtenir a l'ecran le tableau suivant

    IDuser=0144 | Password=3vasvs | Expiratio ...
    IDuser=0145 | Password=sq59vc | Expiration...

    le pipe symbolise la bordure d'un tableau qui pour l'affichage sera fait avec les balises html adèquates.

    merci.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Ton problème c'est de découper la ligne à un tableau à 3 colonnes, c'est bien ça ?
    Tu as deux options :
    • soit tu as des longueurs fixes (autrement dit, l'IdUser fait toujours 4 caractères, le mot de passe fait toujours 6 caractères...) auquel cas tu peux découper ta chaine à te basant sur les longueurs : la 1ere colonne correspondant aux 11 premiers caractères de la chaine, la 2e aux 15 suivants...
    • soit tu as une structure fixe "IDuser=xxxxxxxPassword=xxxxxExpirationNNNdays" auquel cas il doit être possible d'utiliser une regex pour faire le découpage
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  3. #3
    Membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 42
    Points
    42
    Par défaut
    Bonjour,

    Merci pour ta réponse, je parviens à ''découper'' mes variables, mais c'est la boucle qui me pose un problème, seulement une ligne de mon fichier est lue..
    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
    <?php
    $fichier = file("wifiprint/authentwifi02.txt");
    $fichier = str_replace(CHR(13).CHR(10),"",$fichier);
    $fichier = str_replace('days', 'days<br>', $fichier);
    $fichier = str_replace(' = ', '=', $fichier);
    $fichier = str_replace(' ', '', $fichier);
     
    foreach ($fichier as $value)
            {
            $rest = substr($value, 0, 11); echo $rest; echo "  ---  ";
            $rest1 = substr($value, 12, 16); echo $rest1; echo "  ---  ";
            $rest2 = substr($value, 28, 16); echo $rest2;
            echo "<br>";
            ;}
    ?>
    Pourtant elle me semble correcte...

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Dans cette ligne : $fichier = str_replace(CHR(13).CHR(10),"",$fichier); tu appliques une fonction de chaine sur un tableau (parce que file renvoie un tableau) alors que je pense que tu veux l'appliquer à chaque ligne du ligne. ça devrait donc se trouver dans la boucle et non avant.

    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
    $fichier = file("wifiprint/authentwifi02.txt");
     
    foreach ($fichier as $value)
    {
            $value= str_replace(CHR(13).CHR(10),"",$value);
            $value= str_replace('days', 'days<br>', $value);
            $value= str_replace(' = ', '=', $value);
            $value= str_replace(' ', '', $value);
     
            $rest = substr($value, 0, 11); echo $rest; echo "  ---  ";
            $rest1 = substr($value, 12, 16); echo $rest1; echo "  ---  ";
            $rest2 = substr($value, 28, 16); echo $rest2;
            echo "<br>";
            ;
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 42
    Points
    42
    Par défaut
    je viens de modifier mon bout de script de cette façon
    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
    <?php
    $fichier = file("wifiprint/authentwifi02.txt");
    //$fichier = str_replace(CHR(13).CHR(10),"",$fichier);
    //$fichier = str_replace('days', 'days<br>', $fichier);
    //$fichier = str_replace(' = ', '=', $fichier);
    //$fichier = str_replace(' ', '', $fichier);
     
    echo $fichier;
     
    foreach ($fichier as $value)
            {
            $rest = substr($value, 0, 11); echo $rest; echo "  ---  ";
            $rest1 = substr($value, 12, 16); echo $rest1; echo "  ---  ";
            $rest2 = substr($value, 28, 16); echo $rest2;
            echo "<br>";
            ;}
    ?>
    Et seulement la premier ligne de mon fichier est lue donc le pb se situe bien avec la boucle.

  6. #6
    Membre du Club
    Homme Profil pro
    Ingénieur de déploiement réseaux
    Inscrit en
    Avril 2012
    Messages
    111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur de déploiement réseaux

    Informations forums :
    Inscription : Avril 2012
    Messages : 111
    Points : 42
    Points
    42
    Par défaut
    Je pense avoir trouvé le problème mais ne sais pas comment le traiter...
    J'ai isolé ma boucle de la façon suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <?php
    $lines = file('wifiprint/authentwifi02.txt');
    foreach ($lines as $lineNumber => $lineContent)
    {
            echo $lineNumber,' ',$lineContent; echo "FIN DE LIGNE";
    }
    ?>
    Et bien la mention "FIN DE LIGNE" apparait après les 50 lignes de mon fichier...
    Mon fichier d'origine est en html mais il subit des traitements via un script bash, le problème doit être par là.
    enfin si tu as une autre idée, je suis preneur.

Discussions similaires

  1. Extraction des chaines de caractères depuis un fichier texte
    Par mond14 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 14/11/2013, 21h48
  2. [CS3] Charger une variable aléatoire depuis un fichier texte
    Par coincoin22 dans le forum ActionScript 3
    Réponses: 2
    Dernier message: 16/06/2011, 09h38
  3. [Batch] Crée des variables depuis un fichier texte
    Par tidou95220 dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 24/03/2011, 15h26
  4. [FLASH MX] Variables depuis un fichier txt
    Par mascagne dans le forum Flash
    Réponses: 4
    Dernier message: 01/03/2006, 17h57

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