Lire dans des fichiers texte et importer les données en SQL

  • Auteur de la discussion Auteur de la discussion VinZz
  • Date de début Date de début
Nouveau WRInaute
Bonjour à tous,
Je suis novice en PHP et programmation et je souhaite créer une fonctione qui me permettrait de faire ce qui suit.

Je dispose d'un serveur proxy qui crée des fichiers tous les jours en data***.txt (*** : date).
Dans ce fichier se trouvent les noms d'utilisateur et à coté des noms d'utilisateur se trouve le poids total de données transitées par jour.
Il me faudrait donc une fonction qui me récupère ces données et me les mette dans une base SQL rangé par jour, utilisateur.
Au final je voudrais avoir le total par jour, mois, année, ... selon 1 ou plusieurs utilisateurs.

Pensez-vous que cela soit possible ?
Merci.
 
Nouveau WRInaute
Comment faire pour ouvrir tous les fichiers en data* afin d'effectuer un import massif ?

Car avec fopen on doit spécifier un seul nom de fichier
 
Nouveau WRInaute
Bon en fat j'ai trouvé, je vais me faire un compteur avec année mois jour qui sera incrémenté comme ça l'import se fera tout seul.

Par contre, je galère un peu pour récupérer une partie du texte du fichier.

Je vous donne un exemple de contenu :

username received(byte) sent(byte) user1 10362333 1319981 user2 1028616 90333 user3 4520571 525201 Test 0 0

Comment faire pour récupérer les 2 nombres à coté de chaque nom d'utilisateur ?
 
WRInaute discret
Salut à mon avis,le plus simple serait d'avoir un user par ligne..

Ainsi pour accéder aux stats du user1 tu lis la 2eme ligne (si tu garde la ligne username received(byte) sent(byte) au début).

Ensuite, tu explose ta variable selon le séparateur " " (espace) comme ceci :

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

ce qui crée un array comme ceci :

$stat[0] contient user1
$stat[1] contient 10362333
$stat[2] contient 1319981

:)
 
Nouveau WRInaute
Petit problème, j'ai réussi à afficher le fichier comme il est à l'origine (en mettant retour à la ligne au lieu d'espace pour explode.
Donc ça me donne ça :
username received(byte) sent(byte)
user1 13190146 1515600
user2 1028616 90333
user3 5877397 1246892

Mais après, quand je tente de refiltrer de sorte à avoir :
ligne 1 : user1
ligne 2 : 13190146
ligne 3 : 1515600
ça coupe les chiffres en donnant :

username received(byte) sent(byte) user2
3
90
46
5
5600 user2
0286
6 90333 user3 5877397
246892

Voici ce que j'ai mis dans le code :
$stat = explode("
"and" ",$contents);

Les séparateurs ne sont pas des espaces mais de la tabulation (ce que j'ai bien mis dnas le code)
 
Discussions similaires
Haut