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

PHP & Base de données Discussion :

zip_entry_read récupérer les sauts de ligne [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut zip_entry_read récupérer les sauts de ligne
    Bonjour,

    Je lie le contenu d'un fichier zip et ouvre un fichier texte qu'il y a à l'intérieur avec la fonction zip_entry_read.

    Je voudrais savoir comment repérer les sauts de ligne du fichier txt ou sinon récupérer le contenu ligne par ligne.

    Merci d'avance

  2. #2
    Membre émérite
    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
    Par défaut
    quel est le but ?
    Z.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    le but est de lire le contenu d'une ligne pour ensuite m'en servir pour faire une insertion dans la base de donnée :

    exemple

    1;fleur;rouge
    2;fleur;verte

    puis en faisant une boule

    $colonne = explode (";",ligne);

    insert into fleur ($colonne[0];$colonne[1];$colonne[2]);
    ...

    comment savoir que je passe a la ligne pour faire la boule

    J'espère avoir été claire

    merci

  4. #4
    Membre émérite
    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
    Par défaut
    ALors je te conseillerai d'utiliser preg_split avec "\n" comme motif.
    "\n" signifiant 'saut de ligne'.
    Tu recuperes un tableau dont chaque entré est une ligne de ton fichier. Quoi de plus facile qu'un tableau a pacrourir pour traiter chaque ligne et l'insrer dans ta bdd ?

    Z.

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    En PHP5, on devrait pouvoir directement combiner la fonction file au gestionnaire de flux zip. Pour illustrer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (!in_array('zip', stream_get_wrappers())) {
        die("La prise en charge des flux ZIP n'est pas disponible");
    }
     
    $lines = file('zip://chemin_archive#nom_entrée');
    foreach ($lines as $l) {
        $colonne = explode(';', $l);
        mysql_query("INSERT INTO fleur ('${colonne[0]}', '${colonne[1]}', '${colonne[2]}'");
    }
    (non testé)

  6. #6
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    merci très bonne idée mais j'ai un petit souci :

    Warning: preg_split() [function.preg-split]: Empty regular expression

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    	$contenu = zip_entry_read($zip_entry);
     
    		$t = preg_split ("\n" , $contenu);
    		echo $t[0]."<br>";
    		echo $t[1]."<br>";
     
    		$sql = "INSERT INTO ".$nom[0]." VALUES ('', '".$split[0]."' , '".$split[1]."' );";
    		$result = mysql_query($sql);

  7. #7
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    Ok alors essaie ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $t = preg_split ("/\n/" , $contenu);

  8. #8
    Membre émérite
    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
    Par défaut
    il manque les delimiters : preg_split("/\n/", $content);
    Z.

  9. #9
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    Ca fonctionne, merci beaucoup a tous.

    Juste une autre petite chose puis-je savoir comment connaitre le nombre de colonne par lignes.

    ex: 1;Mémoire;SIMM 8 Mo EDO 2Mo x 32;50;0
    renvoyer : 5 lignes

    Merci

  10. #10
    Membre émérite Avatar de obito
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2008
    Messages
    773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Janvier 2008
    Messages : 773
    Par défaut
    ben un explode sur le ; ensuite tu récupère le count du tableau dans lequel tu stock l'explode, non?^^

    EDIT : voila une exemple:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $tab=explode(";",$machaine);
    $nb=count($tab);

  11. #11
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    376
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 376
    Par défaut
    Merci obito ça fonctionne trop bien !!

    Vous êtes tous des boss thanks

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/05/2015, 00h28
  2. récuprer du texte sans les sauts de ligne
    Par enzostar dans le forum JDBC
    Réponses: 4
    Dernier message: 11/01/2011, 14h48
  3. [Mail] Les sauts de lignes pas pris en compte
    Par Anduriel dans le forum Langage
    Réponses: 15
    Dernier message: 14/12/2005, 19h13
  4. Réponses: 8
    Dernier message: 17/11/2005, 12h24
  5. [JtextArea] Transmetre les sauts de ligne à un fichier
    Par romuluslepunk dans le forum Composants
    Réponses: 4
    Dernier message: 04/08/2005, 21h34

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