Créer un fichier csv

merchou Messages postés 13 Date d'inscription   Statut Membre Dernière intervention   -  
 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


<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é
 
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
merchou
 
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