Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1523 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Récupérer fichier CSV à partir d'une adresse puis copie serveur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[PHP] Récupérer fichier CSV à partir d'une adresse puis copie serveur

n°1804930
jay-jay69
Posté le 27-10-2008 à 11:58:38  profilanswer
 

Bonjour à tous,
 
Je souhaite récupérer le ficher CSV de cette adresse et l'intégrer dans une BDD MySQL :http://www.euronext.com/search/dow [...] e=dd/MM/yy
 
Deux possibilités :  
1/ Je télécharge le fichier sur mon serveur et je le traite
2/ Je le traite directement par la fonction fopen
 
Qu'en pensez-vous ? Est-ce qu'un traitement à la volée par fopen marcherait ?
 
Merci d'avance,
 
m.

mood
Publicité
Posté le 27-10-2008 à 11:58:38  profilanswer
 

n°1804935
flo850
moi je
Posté le 27-10-2008 à 12:09:13  profilanswer
 

sauf erreur de ma part , c'est du xls, pas du csv, c'est un peu plus difficile à traiter

 

edit : peut etre pas en fait

 

sinon, ca depend de la configuration de ton serveur
si tu peux acceder au ficheir a distance, autant utiliser fopen

 



Message édité par flo850 le 27-10-2008 à 12:10:50
n°1804938
jay-jay69
Posté le 27-10-2008 à 12:21:21  profilanswer
 

effectivement, c'est du xls...  
 
du coup, je sais pas si php saura le lire directement via fopen...

n°1804950
aideinfo
Posté le 27-10-2008 à 13:07:42  profilanswer
 

Non, ce n'est pas du XLS, c'est un fichier texte tabulé ! L'extension est trompeuse.
Pour pouvoir utiliser fopen(), il faut que la directive allow_url_fopen soit à On dans php.ini.


---------------
http://www.aideinfo.com/  Whois adresses IP/domaines le plus évolué !!  FAQ Free Mobile
n°1805077
jay-jay69
Posté le 27-10-2008 à 17:47:34  profilanswer
 

merci pour vos réponses...  
 
pensez vous que remplir une bdd avec ce type de fichier soit faisable ?

n°1805221
stealth35
Posté le 27-10-2008 à 23:59:44  profilanswer
 

avec la fonction file chaque ligne de ton fichier, est une entré dans une liste, vu que c'est un fichier tabuler tu recuper une ligne  tu fais un explode avec la tabulation comme séparateur, après le tour est joué  plus qu'a recuper les donnees de l'array ($arr) et faire une requete SDBD dans la boucle ;) ( ps: tu peu recuper l'id de la ligne si elle te sert via la variable $key )  
 

Code :
  1. <?php
  2.      $f = file('pricesearch.xls');
  3.      $f = array_slice($f, 5); // Supprime l'en-tete
  4.      foreach($f as $key => $val){
  5.          $arr = explode("\t", $val);
  6.        //echo $arr[0];
  7.      }
  8. ?>


Message édité par stealth35 le 28-10-2008 à 00:11:09
n°1805611
jay-jay69
Posté le 28-10-2008 à 18:24:01  profilanswer
 

je vais étudier ca...
 
mais je pensais que j'aurais pu mettre un "fopen" dans le "file"...

n°1805613
stealth35
Posté le 28-10-2008 à 18:32:22  profilanswer
 

tu peu mettre directement le lien dans file, je croi

n°1805618
jay-jay69
Posté le 28-10-2008 à 18:45:05  profilanswer
 

c'est juste...  
 
bon, du coup, je peux mettre mon array dans ma bdd et ca roule ! excellent !!! merci bcp !

n°1805785
jay-jay69
Posté le 29-10-2008 à 09:48:23  profilanswer
 

Voilà ce que je propose, mais bizarrement, ca marche pas : rien ne rentre dans ma base sql !!! :(
 

Code :
  1. <?php
  2. $connect = mysql_connect("localhost","root","" );
  3. mysql_select_db("euronext", $connect);
  4. $f = file("http://www.euronext.com/search/download/pricesearchdownloadpopup.jcsv?pricesearchresults=actif&equitiesChoice=1&structuredProductType=8&requestComesFromSearchBoxParameter=true&lan=EN&resultsTitle=Warrants&cha=1812&underlying=FR0003500008*XPAR*ISIN&instrumentType=3&underlyingType=2&riskLevel=L&format=xls&formatDecimal=.&formatDate=dd/MM/yy" );
  5.     $f = array_slice($f, 5); // Supprime l'en-tete  
  6.     foreach($f as $key => $val)
  7. {
  8.      $arr = explode("\t", $val);
  9.  //echo $arr[0];
  10.  //echo "<br>";
  11.      }
  12.  $query = "INSERT INTO 'master_data' VALUES (";
  13.   for ($i = 0; $i < count($arr); $i++)
  14.   {
  15.    $query .= "\'$arr[$i]\'";
  16.    if ($i < (count($arr) - 1)) $query .= ", ";
  17.   }
  18.   $query .= " )";
  19.   $result = mysql_query($query,$connect);
  20. ?>

mood
Publicité
Posté le 29-10-2008 à 09:48:23  profilanswer
 

n°1805863
stealth35
Posté le 29-10-2008 à 13:18:28  profilanswer
 

normale ta requete n'est pas dans la boucle

n°1805873
jay-jay69
Posté le 29-10-2008 à 13:39:54  profilanswer
 

bah justement, je construis ma requete a partir de la boucle...

n°1805884
stealth35
Posté le 29-10-2008 à 14:15:00  profilanswer
 

la non, faut que ta requete soit dans le foreach


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [PHP] Récupérer fichier CSV à partir d'une adresse puis copie serveur

 

Sujets relatifs
suppression de dossiers avec fichier txt en paramètreIHM générée depuis un XSD pour éditer un fichier XML
telecharger un fichier protege par htaccess[PHP] Formulaire Email
Formations en PHPptit probleme pour afficher du contenu sql en PHP
[SQL] Lier la récupération d'infos de 2 tablesrenvoyer le resultat d un .bat dans fichier txt puis l ouvrir
Plus de sujets relatifs à : [PHP] Récupérer fichier CSV à partir d'une adresse puis copie serveur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR