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 :

Script PHP importation [PHP 7]


Sujet :

Langage PHP

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Points : 7
    Points
    7
    Par défaut Script PHP importation
    Bonjour à tous,
    je me débats depuis ce matin script php qui devrait me peermettre d'importer des données CSV dans mes bases de données. La partie import n'est pas encoire écrite, mais dès le chargement du fichier csv j'ai des erreurs:
    Warning: str_getcsv() expects parameter 1 to be string, array given in C:\wamp64\www\test\lama.php on line 20

    Warning: Invalid argument supplied for foreach() in C:\wamp64\www\test\lama.php on line 23
    Voici mon code:
    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
    35
    36
    37
    38
     
    <?php 
    $separateur1 = "!#";
    $separateur2 = "|";
    $handle = fopen("C:\essai.csv","r+") ;
    $contenuFichier = fgetcsv($handle,"r+");
    $contenuFichier = str_replace($separateur1, $separateur2, $contenuFichier);
     
     
    $formatCSV = array(
        "sautLigne" => 'a',
        "separateur" => $separateur2 ,
        "encadrant" => "%",
        "echappement" => "z",
    );
     
     
     
    $donnees = [];
     
    $lignes = str_getcsv($contenuFichier);
     
     
    foreach ($lignes as $ligne) {
     
        $ligne = str_getcsv(
              $ligne
            , $formatCSV["separateur"]
            , $formatCSV["encadrant"]
            , $formatCSV["echappement"]
        );
     
        $ligne = array_map("utf8_encode", $ligne);
     
        $donnees[] = $ligne;
     
    }
    ?>
    Merci d'avance,
    Guillaume Proffit

  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
    Ouh la ! c'est un peu le bazar ce code Normalement, soit tu utilises fgetcsv, soit tu utilises fgets (ou une autre fonction de lecture) et str_getcsv, mais pas fgetcsv puis str_getcsv.
    Quel est le format de ton fichier CSV ? et que veux-tu faire sur le contenu ?
    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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    c'est un fichier csv issu d'un système de gestion immonilier. je joins un exemple. Le séparateur est un !#

    Code x : Sélectionner tout - Visualiser dans une fenêtre à part
    "demo"!#"ag29-333B"!#"vente"!#"maison/villa"!#"73170"!#"Yenne"!#"France"!#""!#""!#""!#"210000"!#""!#""!#""!#""!#"110"!#""!#"5"!#""!#"Maison T5"!#" Je vous propose de découvrir cette très agréable maison T5, idéal pour une famille de 4 personnes, puisque située à proximité des écoles et commerces. <BR>En très bonne état et d'une belle construction, elle vous charmera au premier regard.<BR>Vaste séjour exposé sud, 3 belles chambres et un bureau. Cuisine équipée de 2015, salle de bains avec baignoire et double vasques. Cette maison dispose également d'une très belle terrasse ombragée l'été où vous vous régalerez autour du barbecue, en famille ou entre amis elle donne sur les 863 m² de jardin clos ! Même vos animaux de compagnie se régaleront ! <BR>De toutes façon, Yenne n'est qu'à 10 min du Lac du Bouget et moins de 25 km d'Aix les Bains et Chambery !<BR>Petit plus :Transports en commun et commodités à proximité.. Honoraires : 0.96% du prix de vente."!#""!#""!#""!#""!#""!#"1993"!#""!#""!#""!#""!#""!#"640"!#""!#"OUI"!#"NON"!#"OUI"!#"NON"!#""!#""!#""!#""!#""!#""!#""!#""!#""!#"OUI"!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#"OUI"!#""!#""!#""!#""!#""!#""!#"OUI"!#""!#""!#""!#""!#""!#"OUI"!#""!#""!#""!#""!#""!#""!#""!#""!#""!#"OUI"!#"http://le_site/images_annonces/2/29/vente/principale/128907.jpg?1486141651"!#"http://le_site/images_annonces/2/29/vente/secondaire/128907_2.jpg?1486141651"!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#"AGENCE IMMO (demo)"!#"email@domain.com"!#"73170"!#""!#""!#""!#"333"!#"02/02/2017"!#"Dupont"!#"Martin"!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#"128907"!#"80"!#"B"!#"60"!#"F"!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#"NON"!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#""!#"4.08-006"!#"1"!#"208000"!#"1"!#""!#""!#

  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
    Eh bien, tu utilises fgetcsv en précisant le séparateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $handle = fopen("C:\essai.csv","r+") ;
    $donnees = [];
    while($ligne = fgetcsv($handle, , '!#')) {
        $donnees[] = array_map("utf8_encode", $ligne);
    }
    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
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Et donc l'arry données contient dans chaque case une donnée dans le meme ordre que dans le fichier csv?

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vienne (Poitou Charente)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Bon bah, merci quand même Celira

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

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/08/2016, 18h56
  2. Réponses: 4
    Dernier message: 23/08/2014, 13h12
  3. [MySQL] Importer un csv avec un script php
    Par helkøwsky dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 21/06/2012, 11h56
  4. [MySQL] Script php d'importation dans MySQL limité à 80 secondes
    Par JulienDB44 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/01/2011, 16h13
  5. importer base mysql et script php...
    Par kenken38 dans le forum Administration
    Réponses: 8
    Dernier message: 04/05/2006, 17h03

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