Bonjour,

J'ai un script Php qui utilise la biblothèque reader.php qui permet de traiter des fichiers xls.

Mon problème, c'est que je dois traiter de très lours fichiers xls, et lors de mon script, j'ai l'erreur "Fatal error: Allowed memory size of 13631488 bytes exhausted (tried to allocate 35 bytes) in C:\wamp\www\Excel\reader.php on line 1008".

Or, dans mon fichier "php.ini" j'ai affecté 32M à memory_limit (car je pense que c'est le maximum que je peux affecter), et, pour être sûr, en début de script, je fais
Code : Sélectionner tout - Visualiser dans une fenêtre à part
ini_set('memory_limit','32M');
.

Pour info, voici mon script (qui est en cours de création, donc je ne fais que charger mon xls sans encore le traiter) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
<?php
ini_set('memory_limit','32M'); //Pour le traitement du fichier xls qui peut être très lourd
session_start();
include_once("../fichiersInclusion/classes.php");
Include("../../Excel/reader.php"); //Chargement de la librairie
 
header('Content-Type: text/html; charset=utf-8');
 
include_once("../fichiersInclusion/fonctionsPhp.inc");
 
if ($_FILES['fichierCibles']['error'] == UPLOAD_ERR_OK)
 {
  $chemin_destination = '../campagnes/fichierDerniereCampagne.xls';
 
  if(move_uploaded_file($_FILES['fichierCibles']['tmp_name'], $chemin_destination))
   {
    $tab['nomFichier'] = date("Y-m-d-H-i-s") . '.inc';
 
    if($file = fopen ("../fichiersInclusion/interfacesCampagnes/". $tab['nomFichier'], "a+"))
     {
      fwrite($file, $_SESSION['code']);
      fclose($file);
 
      if(!empty($_POST['nom']))
       $tab["nom"] = $_POST['nom'];  
 
      if(!empty($_POST['accroche']))
       $tab["accroche"] = $_POST['accroche'];
 
      if(!empty($_POST['dateDebut']))
       $tab["dateDebut"] = $_POST['dateDebut'];
 
      if(!empty($_POST['dateFin']))
       $tab["dateFin"] = $_POST['dateFin'];
 
      $campagne = new CCampagne($tab);
      $resultat = $campagne->enregCampagne('enreg');
 
      if($resultat == "Enregistrement effectué")
       {
        //Traitement du fichier xls (mise-à-jour des des tables cibles et contacts) 
        $data = new Spreadsheet_Excel_Reader();// Instanciation de la class permettant la lecture du fichier excel
        $data->setOutputEncoding('utf-8');// Définition du type d’encodage de caractère à utiliser pour la sortie (ce qui va être affiché à l’écran)
        $data->read($chemin_destination);// Chargement du fichier excel à lire
 
        header("Location:../interfaces/interface.php?fichier=../fichiersInclusion/interfacesCampagnes/" . addslashes($tab['nomFichier']) . "&titre=Questionnaire");
       }
      else
       header("Location:../interfaces/interface.php?fichier=../fichiersInclusion/creatForm/erreurEnregCampagne.inc&titre=Erreur");
     }
    else
     echo "<font color='red'>Impossible de créer l'interface du questionnaire</font>";
   }
 }
else
 echo "<font color='red'>Le fichier des client-cibles n'a pas pu être enregistré</font>";
?>
Quelqu'un pourrait m'indiquer ce que je dois configurer pour que ça passe?

Pour info, mon fichier xls de test fait 5 Mo. Par contre, si j'essaie avec un fichier de 1.8 Mo, ça passe.

Merci d'avance