Communauté Informatique NDFR.net

Communauté Informatique NDFR.net (http://www.ndfr.net/forums/index.php)
-   Programmation Web (HTML, PHP, ASP, Java, XML, etc.) (http://www.ndfr.net/forums/forumdisplay.php?f=65)
-   -   Creation d'un fichier de sortie en PHP (http://www.ndfr.net/forums/showthread.php?t=3416)

megaseb 24-01-2004 11:20

Creation d'un fichier de sortie en PHP
 
Salut à tous.

Deja félicitation pour votre forum!!!

Bon voila moi je debute en PHP, j'ai besoin de creer un fichier de sortie (format csv) pour l'importer dans un logiciel propoietaire apres. Ce fichier est généré en PHP par résultat de requetes à une base de données.

Voici mon code:
Code:


 
<?
$file = 'export' . '_' . date('dmY') . '.csv';
$fp=fopen('/xxxxxxxxx/backups/' . $file ,"wb"); // Ouverture du fichier avec le mode écriture

//On se connecte à Mysql.
$connect=@mysql_connect(xxxxxxxxxxxxx) or die(mysql_error());
//On séléctionne la base de donnée.
$select_db=@mysql_select_db('xxxxxxxxxxx') or die(mysql_error());
$request = "SELECT orders_id, delivery_name, delivery_street_address, delivery_postcode, delivery_city, delivery_country, customers_telephone FROM orders WHERE orders_status=100003 "; //On déclare la requête mysql.
if ($result = mysql_query($request))
 {
 while($ligne = mysql_fetch_row($result))
  {
  $id = $ligne[0];
  $name= $ligne[1];
  $address = $ligne[2];
  $postcode = $ligne[3];
  $city = $ligne[4];
  $country = $ligne[5];
  $phone = $ligne[6];
  $chaine ="$id;$name;$address;;;$postcode;$city;$country;;;$phone;\r";
  fwrite($fp, $chaine);
  } 
 }else
  {
  echo "Ereur";
  }
echo ("<a href=\"http://xxxxxxxxxxxx/backups/" . 'export' . '_' . date('dmY') . '.csv' . "\">Telecharger le fichier</a>");
 
mysql_close($connect); // On se déconnecte de Mysql
?>

1) Le probleme viens du caractere de retour à la ligne le "\r" qui je pense est mal interprete par le serveur qui est sous Unix.

2) De plus j'aimerais bien que le fichier se télécharge automatiquement sans avoir besoin de cliquer sur le lien.

Merci d'avance pour votre aide.

Seb

Benjy 24-01-2004 12:01

Re : Creation d'un fichier de sortie en PHP
 
Comment faire un retour à la ligne en PHP :

En général sous Unix un \n suffit. Il est toutefois préférable d'utiliser \r\n (dans les versions les plus récentes de PHP et, par exemple, lors de l'envoi de mails sans sendmail).
Je précise au passage que la "norme" voudrait qu'un \r\n\r\n soit utilisé. IIS 6, par exemple, s'en sert ; donc si vous devez communiquer avec un script hébergé sur un tel serveur, n'oubliez pas ce petit détail ;)


Comment envoyer un fichier en PHP :

Dans ton cas j'essaierais un truc du genre :
Code:

header('Content-Type: text/x-csv');
header('Expires: ' . gmdate('D, d M Y H:i:s') . ' GMT');
header('Content-Disposition: inline; filename="toto.csv"');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
echo $fichier;

Où $fichier contient les données de ton fichier CSV.

megaseb 24-01-2004 15:25

Re : Creation d'un fichier de sortie en PHP
 
Super Merci Benji

Bon avec \n\r ca marchait pas j'vait un "carré" comme caractere de fin de ligne et non pas un saut de ligne

Mais avec le double "\n\r\n\r" ca marche sauf que ya une ligne vide entre. Enfin bon mon logiciel arrive quand mêm à importer le fichier, ce qui était pas le cas avant.

Pour la deuxieme partie de ma question, je vais tester ta solution.

Je te remercie.

Longue vie à ce forum.

Benjy 24-01-2004 17:17

Re : Creation d'un fichier de sortie en PHP
 
De rien :)
Et c'est \r\n, pas \n\r ;)

megaseb 25-01-2004 13:43

Re : Creation d'un fichier de sortie en PHP
 
Oui c'est ca j'avais bien utilisé \r\n dans mon code.
Je me suis juste planté dans mon poste.

Bon le telechargement automatique fonctionne :cool:

Par contre est ce qu'il est possible de passer en parametre le repertoire sur le disque dur où stocker le fichier de maniere automatique.

Je m'explique:
- Je voudrais que le fichier se telecharge sur mon disque dur dans le repertoire "C:\EXPINET\IMPORT", sans avoir à chaque fois à selectionner le repertoire de telechargement.

- Et enfin le top ca serait de pouvoir le telecharger sans avoir besoin de cliquer sur le bouton enregistrer.

Le but de tout ca est de pouvoir automatiser l'importation dans un logiciel proprietaire d'informations recupérées dans une base et ce sans intervention humaine.

Benjy 25-01-2004 18:52

Re : Creation d'un fichier de sortie en PHP
 
Ce genre de manipulation est impossible, car nécessiterait de "taper" directement dans l'API de ton navigateur Internet... Et ci c'était possible, j'aurais tendance à considérer ça comme une faille ;)


All times are GMT +2. The time now is 09:37.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.