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 :

Inscription dans un fichier de 200 000 données


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 87
    Points : 186
    Points
    186
    Par défaut Inscription dans un fichier de 200 000 données
    Je cherche à pouvoir enregistrer des données dans un fichier mais sans le corrompre.
    Notre base de donnée contiens un peu plus de 200 000 adresse courriel et les transférer dans un fichier texte dans le but de les envoyer comme dump à Emailbrain pour notre mailinglist.

    Le problème qui me préoccupe est de pouvoir enregistrer ces données sans exéder la limite de mémoire (je doute pouvoir faire une concaténation des adresse courriel dans une variable avant de les enregistrer dans un fichier) puisque je suis sur un hébergeur mutualisé.

    J'ai peur que si je fais un simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    while($row = mysql_fetch_array($q))
    {
    $text = $row['courriel'] . "\n";
    file_put_contents(dump.csv, $row['courriel'], LOCK_EX|FILE_APPEND);
    }
    que le fichier soit corrompu par le fait qu'il soit ouvert et fermé sans cesse.

    Une suggestion à cet effet ?

  2. #2
    Membre habitué

    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    36
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 36
    Points : 129
    Points
    129
    Par défaut
    Bonsoir,

    tu peux éventuellement ouvrir le fichier, écrire les données et le fermer après:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $fp = fopen('dump.csv', 'w');
    if ($fp!==FALSE) {
       while ($row = mysql_fetch_array($q)) {
           $text = $row['courriel'] . "\n";
           fwrite($fp, $row['courriel']);
       }
       fclose($fp);
    }

  3. #3
    Membre habitué
    Profil pro
    Développeur .NET
    Inscrit en
    Décembre 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2007
    Messages : 87
    Points : 186
    Points
    186
    Par défaut
    mwin j'avoue, lol j'aurais dû réfléchir un peu plus à mon affaire avant de poser la question. [Résolu] donc !

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 08/07/2014, 13h41
  2. Lecture dans un fichier et extraction de données!
    Par Myokara dans le forum Général Python
    Réponses: 3
    Dernier message: 25/04/2014, 17h19
  3. Réponses: 4
    Dernier message: 03/03/2010, 22h20
  4. [WD12] Postion dans un fichier de base de donnée
    Par Fred 57220 dans le forum WinDev
    Réponses: 18
    Dernier message: 10/01/2009, 16h53
  5. Réponses: 1
    Dernier message: 08/10/2008, 15h30

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