silv1 Posté 29 Avril 2008 Posté 29 Avril 2008 Bonjour!!! Voici mon problème: en fait les données de mon formulaire sont à la fois envoyées par mail et stockées sur un fichier txt. Dans le fichier php qui gère le traitement des infos du formulaire j'ai inséré ces quelques lignes de code: $datedujour = date('d/m/y/H:i:s');$filename="./admin/liste.txt";$fl=fopen($filename,"a+");fwrite($fl,"''$datedujour'|'$nom'|'$prenom'|'$adressemail'|'$departement'|'$tel'|'$sqlinterets'|'$comments'|\n\r");/* on ferme le fichier */fclose($fl); Tout marche nickel, les résultats du formulaires apparaissent sur le fichier liste.txt ; mais en fait j'aimerai obtenir directement un fichier au format csv avec séparateur point-virgule afin de rendre les données plus facilement exploitables. Que dois-je faire au niveau du code pour parvenir à ce résultat? Merci d'avance pour votre aide SILV1
captain_torche Posté 29 Avril 2008 Posté 29 Avril 2008 Remplace ton fwrite par fwrite($fl,"$datedujour;$nom;$prenom;$adressemail;$departement;$tel;$sqlinterets;$comments\n\r"); Après avoir traité toutes les variables pour en enlever les éventuels points-virgules et retours chariots, bien sûr. Sinon, pourquoi utiliser un séparateur si complexe ? '|'
Dadou Posté 29 Avril 2008 Posté 29 Avril 2008 Ben $datedujour = date('d/m/y/H:i:s');$filename="./admin/liste.csv";$fl=fopen($filename,"a+");fwrite($fl,"$datedujour;$nom;$prenom;$adressemail;$departement;$tel;$sqlinterets;$comments;\n\r");/* on ferme le fichier */fclose($fl); Edit : Grillé sur le fil
silv1 Posté 29 Avril 2008 Auteur Posté 29 Avril 2008 Merci à tous les deux pour vos réponses si rapides Je vais tout de suite faire le changement! SILV1
silv1 Posté 29 Avril 2008 Auteur Posté 29 Avril 2008 Au fait, pour supprimer les retours chariots, est-ce que ces quelques lignes de code peuvent faire l'affaire? <?php$texte=nl2br($texte); $texte=str_replace(CHR(10),"",$texte); $texte=str_replace(CHR(13),"",$texte); ?> Merci bien! Silv1
blman Posté 29 Avril 2008 Posté 29 Avril 2008 En PHP, il existe une fonction toute faite qui permet d'écrire du CSV : http://fr3.php.net/manual/fr/function.fputcsv.php Attention à bien protéger tes champs si tu avais un délimiteur dans ton contenu (le CSV en serait faussé).
silv1 Posté 29 Avril 2008 Auteur Posté 29 Avril 2008 (modifié) Merci Blman pour l'astuce mais je pense que mes connaissances en php sont trop limitées pour utiliser cette fonction Pour le moment j'ai simplement remplacé mes anciens séparateurs par des points virgules et ça marche imppécable! Merci à tous pour votre aide si précieuse Silv1 Modifié 29 Avril 2008 par silv1
Dadou Posté 29 Avril 2008 Posté 29 Avril 2008 l'exemple utilisé pour cette fonction est très facilement adaptable à ton cas <?php$list = array ( '29/04/08/16:45:33;Anseaume;David;nom_AT_domaine.ext;76;0202020202;Internet, littérature...;Test', '29/04/08/15:38:24;Gates;Bill;bill_AT_microsoft.com;76;0202020202;Internet, littérature...;Test');$fp = fopen('liste.csv', 'w');foreach ($list as $line) { fputcsv($fp, split(',', $line));}fclose($fp);?>
silv1 Posté 30 Avril 2008 Auteur Posté 30 Avril 2008 OK j'essaierai d'intégrer ce code... Là depuis ce matin je galère pour enlever les retours chariots dans le champ commentaires (comments). J'ai essayé ça mais je suis pas du tout sûr de moi: $datedujour = date('d/m/y/H:i:s');$filename="./admin/prospects.txt";$comments = str_replace( array( "\r", "\n" ), '', $comments );$fl=fopen($filename,"a+");fwrite($fl,"''$datedujour;$nom;$prenom;$adressemail;$departement;$tel;$sqlinterets;$comments';\n\r");fclose($fl);
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant