[PHP] Gestion Warnings

Gestion Warnings [PHP] - PHP - Programmation

Marsh Posté le 10-12-2008 à 15:45:27    

Salut à tous,
 
J'ai une une page PHP qui utilise comme source un fichier xls du site Euronexte (bourse)...
Je l'ouvre via ma page, et je fais plein de traitements etc... tout fonctionne !
 
Mais : de temps en temps (cette page est actualisé tous les 5/10mins), pour une raison mysterieuse, il n'arrive pas à recupérer mon fichier sur Euronext (pb réseau...etc...)... A la limite c'est pas grave, mais quand ca fait ca, j'ai ce genre de warning :
 

Code :
  1. Warning: 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) [function.file]: failed to open stream: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. in C:\Program Files\EasyPHP 2.0b1\www\TAJ Capital\index.php on line 38
  2. Warning: array_slice() [function.array-slice]: The first argument should be an array in C:\Program Files\EasyPHP 2.0b1\www\TAJ Capital\index.php on line 39
  3. Warning: Invalid argument supplied for foreach() in C:\Program Files\EasyPHP 2.0b1\www\TAJ Capital\index.php on line 41
  4. Warning: Division by zero in C:\Program Files\EasyPHP 2.0b1\www\TAJ Capital\index.php on line 361
  5. Warning: Division by zero in C:\Program Files\EasyPHP 2.0b1\www\TAJ Capital\index.php on line 362
  6. Warning: Division by zero in C:\Program Files\EasyPHP 2.0b1\www\TAJ Capital\index.php on line 364
  7. Warning: Division by zero in C:\Program Files\EasyPHP 2.0b1\www\TAJ Capital\index.php on line 365


 
Et je voudrais que quand le warning de ma fonctio file apparaisse, il annule tout le reste...  
 
LA question : comment CAPTER ce warning pour éviter d'executer le reste du code ?
 
merci,
 
m.

Reply

Marsh Posté le 10-12-2008 à 15:45:27   

Reply

Marsh Posté le 10-12-2008 à 15:52:02    

if (false !== @file_get_contents(MonFichier)){
...

Reply

Marsh Posté le 10-12-2008 à 15:52:05    

tu le récupères comment, ton fichier?:o


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-12-2008 à 15:53:46    

Avec la fonction "file" :

Code :
  1. $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" );


 
:) :) :)

Reply

Marsh Posté le 10-12-2008 à 15:54:19    

skeye a écrit :

tu le récupères comment, ton fichier?:o


 
Si tu lisais le message d'erreur tu le saurais :o


---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait
Reply

Marsh Posté le 10-12-2008 à 15:56:57    

ce serait peut-être une bonne idée de le récupérer en local, et d'ouvrir ensuite la copie locale...sinon ça :

Code :
  1. $f = @file(...);
  2. if(empty($f)){
  3. echo "échec";
  4. }
  5. else{
  6. //traitement normal
  7. }


Message édité par skeye le 10-12-2008 à 15:57:03

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-12-2008 à 15:57:14    

esox_ch a écrit :


 
Si tu lisais le message d'erreur tu le saurais :o


flemme.[:petrus75]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 10-12-2008 à 16:08:26    

Impecc skeye...
 
J'ai rajouté un petit "@" devant ma fonction file pour masquer le warning... et ca roule !!! :)

Reply

Marsh Posté le 10-12-2008 à 18:42:06    

mais pense à arrêter le traitement en cas d'échec :
 

Code :
  1. $f = file("..." );
  2.  
  3. if(is_array($f)) {
  4.    // a priori ok
  5. } else {
  6.    // echec
  7. }


 
Comme file() retourne un tableau, et false en cas d'echec, il suffit de regarder si la valeur de retour est un array correct avec is_array()
 
http://fr.php.net/is_array

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed