Parser plusieurs lignes en php

phpnaab -  
 phpnaab -
Bonjour,

Débutant sous php, je n'ai pas encore toutes les bases nécessaires pour m'en sortir tout seul.
Voici mon cas :
J'ai les lignes suivantes qui se présentent dans un fichier :
ligne1#colonne1#colonne2#colonne3
ligne2#colonne1#colonne2#colonne3
ligne3#colonne1#colonne2#colonne3


J'ai utilisé un # dans mon exemple afin que ce soit visible, mais le séparateur réel est une tabulation

Comment récupérer ces infos, et les injecter dans une base SQL ?

D'avance merci pour vos conseils !

A voir également:

4 réponses

rewotLF Messages postés 16 Statut Membre 1
 
Bonjour,


tu peux utiliser les fonction fopen() et fgets().

http://www.manuelphp.com/php/function.fopen.php

https://www.php.net/manual/fr/function.fgets.php


Bonne journée!!
0
adgem0 Messages postés 122 Statut Membre 161
 
Salut,
Dans l'exemple suivant, on considère que tu as déja établi la connexion avec la base de données. Si tu ne sais pas encore le faire, demande moi. Mais j'espère que tu as déjà passé cette étape !
<?php 
$handle = fopen("file.txt", "r"); // Option "r" pour ouverture en lecture seule 
if ($handle) { // Si l'ouverture s'est bien passée 
    while (!feof($handle)) { // Tant qu'on a pas atteint la fin du fichier 
        $buffer = fgets($handle, 4096); // On lit une ligne 
        echo $buffer; // Ici on affiche la ligne lue (facultatif) 
        $ligne = explode("\t", $buffer); 
        /* La fonction explode permet de mettre dans un tableau 
        tout les éléments séparé par un caractère 
        Le premier paramètre est le caractère qui sépare 
        Ca peut être n'importe quel caractère comme un # par exemple 
        ou \t (antislash t) ... le caractère de tabulation ! 
        Le second paramètre est ta ligne à parser */ 
        /* A cette étape, $ligne est un tableau qui contient les  
        éléments d'une ligne de ton fichier 
        On y accède comme ça : 
        $ligne[0] $ligne[1] $ligne[2] etc ...*/ 
        mysql_query("INSERT INTO 'lenomdetatable' ('champ1', 'champ2', 
        ...) VALUES ('".$ligne[0]."', '".$ligne[1]."', ...);"); 
        /* Cette requête d'insertion est un exemple. 
        Tu dois l'adapter à ton cas */ 
        // Une fois que c'est fait, on passe à la ligne suivante 
    } 
    fclose($handle); // On ferme le fichier 
} 
?> 
0
Gado
 
tu peux aussi utiliser la fonction file pour lire ton fichier : elle l'ouvre ton fichier et stocke chaque ligne dans une case d'un tableau. Après il suffit d'utiliser explode comme ça a déjà été expliqué.

https://www.php.net/manual/fr/function.file.php
0
phpnaab
 
Merci beaucoup, vos réponses m'ont bien aidées et je pense arriver à ce que je voulais faire !
0