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 :

retour à la ligne, explode, et fin de fichier indéterminer.


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Femme Profil pro
    Consultante LIMS
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultante LIMS
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 74
    Points
    74
    Par défaut retour à la ligne, explode, et fin de fichier indéterminer.
    Bonjour
    je voudrai votre aide pour parser un fichier texte
    ex :
    Eukaryota
    2
    ancestral
    n
    2759
    131567


    1474
    5358
    36329
    3702
    33154
    //la fin est ici

    Les champs vides sont non renseignés.

    j'ai une fonction me permettant de lire le fichier texte
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    function recup_species($requete){
     $result_requete= "";
     
    	$file = fopen("../tmp/".$requete."/descr.txt", "r");
    	if ($file) {
    		while (!feof($file)) {
    		$result_requete= $result_requete.fgets($file, 4096);
    	}
    	fclose($file);
    	}				
    return $result_requete;
    }
    Je fais donc un explode mais celui-ci n'est pas complet car:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    list($_SESSION['requete'][$req]['NAME'],...., ) = explode('\n', recup_species($req));
    1/ Vu que chaque terme est sur une ligne, je ne sais pas si en php '\n' est le terme adéquat

    2/Les 10 permières lignes du fichier sont constantes, mais la requete faite en background ajoute des nouvelles données et je ne sais pas combien c'est aléatoire
    Je voudrais donc stocker toutes ces dernières lignes dans une seule variable du type $_SESSION['requete'][$req]['TAXIDCH']


    Pouvez vous m'aider??

  2. #2
    Membre éclairé
    Profil pro
    Assistant recherche bioinformatique
    Inscrit en
    Novembre 2007
    Messages
    877
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Assistant recherche bioinformatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 877
    Points : 835
    Points
    835
    Par défaut
    Salut,

    Je ne comprends pas quel et l'interet de passer d'un fichier ou chaque donnée est séparée par un saut de ligne à des données a la chaine, dans une seule variable.

    Fait un echo de tes données, et tu pourras te rendre compte du format dans tes variables.

    Si tu me decrit plus precisement et concretement ce que tu vas récuperer dans ton fichier, et surtout comment tu places ces données dans ton tableau associatif, je pourai mieux t'aider.

    Z.

  3. #3
    Membre régulier
    Femme Profil pro
    Consultante LIMS
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultante LIMS
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 74
    Points
    74
    Par défaut
    je ne m'y connais pas beaucoup en php, encore moins en perl, alors sorry si j'explique mal.

    la passage à la ligne n'est pas vu par explode car quant je fait print de la première variable de la list, tout est stocké dedans
    print($_SESSION['requete'][$req]['NAME']);
    Eukaryota 2 ancestral n 2759 131567 1474 5358 36329 3702 33154

    je fais une requete perl dont la sortie est formatée sous la forme du fichier texte
    Eukaryota
    2
    ancestral
    n
    2759
    131567


    1474
    5358
    36329
    3702
    33154
    (je ne suis pas l'auteur des script en perl, je n'en ai jamais fait, c'est organisé tel que
    $name = $tab_line[9];
    $dfs = $tab_line[0];
    $type = $tab_line[6];
    $real = $tab_line[3];
    $taxID = $tab_line[1];
    $parent = $tab_line[2];
    $codePD = $tab_line[4];
    $codeHG = $tab_line[5];
    $nbProt = $tab_line[7];
    $nbDom = $tab_line[8];
    le tableau peut continuer de façon aléatoire , je ne connais pas le nombre de ligne qui sera générer par la requete
    )
    je veux chacune de ces lignes dans une variable de session
    que je réutiliserai sur une page web

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonsoir,

    Un code, imaginé à main levée et non testé
    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
     
    $filename = 'fichier.txt';
    $str = file_get_contents($filename);
    $tab_line = explode ("\n", $str);
     
    $name    = $tab_line[9];
    $dfs       = $tab_line[0];
    $type     = $tab_line[6];
    $real      = $tab_line[3];
    $taxID    = $tab_line[1];
    $parent  = $tab_line[2];
    $codePD = $tab_line[4];
    $codeHG = $tab_line[5];
    $nbProt   = $tab_line[7];
    $nbDom   = $tab_line[8];
     
    $reste = array_slice($tab_line, 10);
    $taxidch = implode(';', $reste); // ; pris au pif, à toi de choisir
    Ca ne marche sûrement pas, mais c'est une piste.
    • Avant de poser une question, n'hésitez pas à chercher dans la FAQ et les forums
    • Merci d'utiliser les balises de code (# dans l'éditeur)
    • N'oubliez pas de vous servir des boutons , et

    S.N.A.F.U

  5. #5
    Membre régulier
    Femme Profil pro
    Consultante LIMS
    Inscrit en
    Avril 2009
    Messages
    145
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultante LIMS
    Secteur : Industrie Pharmaceutique

    Informations forums :
    Inscription : Avril 2009
    Messages : 145
    Points : 74
    Points
    74
    Par défaut
    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
     
    function get_species($requete){// read the files that containt the query's results
     
     $result_requete= "";
     $file = fopen("../tmp/".$requete."/descr.txt", "r") or die("problème oouverture fichier");
     
    	if ($file) {
    		$cmpt=0;
    		while (!feof($file)) {
    		$cmpt++;
    			if ($cmpt <10){
    			$result_requete= $result_requete.fgets($file, 4096);		
    			}
    			else{							
    				$_SESSION['TAXIDCH']=$_SESSION['TAXIDCH'].fgets($file, 4096);				
    			}
    		}
    	if($cmpt>1) $_SESSION['rsok']=TRUE;
     
    	fclose($file);
     
    return $result_requete;
    	}
    }
    et ça fonctionne !!!!!!!!!! thx

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

Discussions similaires

  1. retour à la ligne après ajout element en fichier xml
    Par wajdiisi2007 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 22/08/2007, 16h07
  2. Retour à la ligne, explode, paragraphe.
    Par Vinzius dans le forum Langage
    Réponses: 1
    Dernier message: 30/05/2007, 01h04
  3. retoure à la ligne dans un fichier
    Par adilou1981 dans le forum Langage
    Réponses: 4
    Dernier message: 02/12/2004, 15h05
  4. [JTextArea] Fichier et retour à la ligne
    Par eraim dans le forum Composants
    Réponses: 4
    Dernier message: 23/06/2004, 08h21
  5. Lire de la 2eme ligne à la fin du fichier
    Par iamspacy dans le forum Linux
    Réponses: 3
    Dernier message: 03/05/2004, 13h23

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