Créer un fichier csv
merchou
Messages postés
16
Statut
Membre
-
merchou -
merchou -
Bonjour à tous ! Je suis débutant en php et j'ai besoin de savoir comment créer un fichier csv à partir des valeurs entrées dans un input type texte:
en fait je veux entrer un intervalle comme suit: 0000;0005 dans mon input et avoir le résultat suivant:
0000
0001
0002
0003
0004
0005
Ceci dans un fichier CSV (ou txt si possible).
Voici mon code:
FORMULAIRE
CODE PHP
PROBLEMES
- Il écrire tout sur la même ligne dans le fichier
- Il conserve l'ancien contenu
je voudrais que chaque fois qu'il écrit qu'il vide le fichier et y met un nouveau contenu selon la structure suivante:
0001
0002
0003
0004
0005
S'il vous plait aidez moi une fois de plus, je vous en prie. Je ne connais pas.
Merci d'avance.
en fait je veux entrer un intervalle comme suit: 0000;0005 dans mon input et avoir le résultat suivant:
0000
0001
0002
0003
0004
0005
Ceci dans un fichier CSV (ou txt si possible).
Voici mon code:
FORMULAIRE
<html> <body> <form method="post" action="testinput.php"> Nom : <input type="text" name="nom" size="12"><br> Prénom : <input type="text" name="prenom" size="12"> <input type="submit" value="OK"> </form> </body> </html>
CODE PHP
<?php $chaine= $_POST['nom']; $num = explode(";", $chaine); for ($data = $num[0] ; $data <= $num[1]; $data++) { $monfichier = fopen('fichiernum.txt', 'a'); fputs($monfichier, $data); fseek ($monfichier, 0); } fclose ($monfichier); ?>
PROBLEMES
- Il écrire tout sur la même ligne dans le fichier
- Il conserve l'ancien contenu
je voudrais que chaque fois qu'il écrit qu'il vide le fichier et y met un nouveau contenu selon la structure suivante:
0001
0002
0003
0004
0005
S'il vous plait aidez moi une fois de plus, je vous en prie. Je ne connais pas.
Merci d'avance.
A voir également:
- Comment créer un fichier csv pour gmail
- Gmail connexion - Guide
- Comment créer un compte gmail - Guide
- Comment créer un groupe whatsapp - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
2 réponses
salut,
bon je viens de travailler pour toi (le défis été trop tentant hihi).
voici la solution (j'ai commenté pour que tu puisse comprendre ce que l'on fait, pourquoi etc...
n'hesite pas à nous faire un retour afin d'en aider d'autre si cette solution t'as aider !
bon je viens de travailler pour toi (le défis été trop tentant hihi).
voici la solution (j'ai commenté pour que tu puisse comprendre ce que l'on fait, pourquoi etc...
<?php if(isset($_POST['nom'])) { $chaine= $_POST['nom']; $num = explode(";", $chaine); //une fois qu'on a exploser, on commence le traitement, ce n'est qu'à la fin qu'on stockera celà dans un csv (ou un fichier txt). $premiereValeur = $num[0]; $secondeValeur = $num[1]; //On calcule l'écart entre les deux $ecart = $secondeValeur - $premiereValeur; //on ouvre le fichier en lecture et ecriture (en vidant le fichier au passage). $monfichier = fopen('fichiernum.csv', 'w+'); //on créé le tableau de valeur $tab = array(); //la première entrée du tableau sera la valeur de départ. $tab[0] = $premiereValeur; //on etablie la fonction permettant de stocker dans un tableau for($i=1;$i<=$ecart;$i++) { $format = ($tab[0]+$i); $tab[] = (sprintf("%04s",$format)); } //Maintenant qu'on a tous stocké dans le tableau, on l'écrit. //Attention, dans un txt, le format sera celui attendu, en revanche, excel interpretera "0001" comme étant "1" etc... foreach($tab as $t) { fputs($monfichier,$t); fwrite($monfichier,"\n"); } fclose ($monfichier); } ?> <form method="post" action=""> Nom : <input type="text" name="nom" size="12"><br> Prénom : <input type="text" name="prenom" size="12"> <input type="submit" value="OK"> </form>
n'hesite pas à nous faire un retour afin d'en aider d'autre si cette solution t'as aider !