Créer un fichier csv

Fermé
merchou Messages postés 13 Date d'inscription samedi 15 février 2014 Statut Membre Dernière intervention 17 mars 2014 - Modifié par merchou le 17/02/2014 à 16:12
 merchou - 14 mars 2014 à 15:41
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


<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:

2 réponses

Profil bloqué
14 mars 2014 à 15:16
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...
<?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 !
0
Merci beaucoup pour cette solution.
Vous m'avez vraiment aidé et ça me facilite beaucoup de traitement.
Merci aussi pour les explications en commentaire.
Merci surtout pour le partage.
Salut !
0