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

  FORUM HardWare.fr
  Programmation
  PHP

  problème de Fatal error: Allowed memory size of 33554432 bytes exhaust

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de Fatal error: Allowed memory size of 33554432 bytes exhaust

n°1591062
alpseb
Posté le 24-07-2007 à 20:19:46  profilanswer
 

Hello, avant de me jetter par la fenêtre, je tente quand meme un petit message ici !
 
mon probluème : j'ai devellopé une gallerie photo en php qui répond à mes besoin de photographe pressé :
il y a qu'un seul fichier index.php
il liste les photos qui sont dans le meme répertoire que lui
il en fait des vignettes et il les affiche (avec d'autres options...)
 
Je propose ce srcipt aux gens pour qu'ils puissent faire des galleries facillement sans rien coprendre au web...
(je suis entrain de faire le site web avec les explications d'utilisations)
 
juste que la, tout va bien, je suis content, je l'utilise tous le temps, je fais du travail de boeuf avec : 2 Go de photos, 600 photos de 10 millions de pixels... c'est long a calculer, mais ca mange tout, parfait !
 
Je précise que mon hébergeur perso est ... Free.fr
 
depuis quelques jours, j'éssaie de mettre ce script sur un autre espace free...  mais ca ne marche pas !  
je copie le meme script et les memes photos sur un autre free et ca me met ce message :
 
Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 3872 bytes) in /mnt/160/sda/2/8/pixmariage/test/index.php on line 224
 
meme avec une seulle photo de 2 Mo en jpg, ca chie ! alors que sur mon free perso, je bourrine n'importe quoi et ca marche !!
 
Avez vous une idée de la raison pour laquelle ca marche chez moi et pas ailleur ???
 
exemple qui chie : http://pixmariage.free.fr/test/  (ya qu'une photo dans le dossier)
exemple qui marche : http://dolanhanh.free.fr/mariageDF/
 
je poste un bout du script ou je redimentionne les images  
 

Code :
  1. while ($currfile = readdir($handle)) 
  2. {
  3. // We get the extension of the current file and keep only image files
  4.    $extension= strtolower(substr( strrchr( $currfile,  "." ), 1 )); 
  5.    if ($extension== "gif" || $extension== "jpg" || $extension== "jpeg" || $extension== "png" || $extension== "JPG" || $extension== "JPEG" )
  6.    {
  7.       $nbfiles++;
  8.       $currfile = trim($currfile);
  9.       $filestab[$nbfiles] = $currfile;
  10. }
  11. }
  12. // si on veux trier par ordre alphabétique
  13. if($trieOrdreAlpha){sort($filestab) or die ("erreur" );}
  14. // on boucle sur les fichiers
  15. for ( $nb=1 ; $nb<=$nbfiles ; $nb++ ){
  16.    $currfile = $filestab[$nb];
  17.       if ($ishome ==  "" )
  18.       {
  19.          $size = GetImageSize($currfile);
  20.          $widthBig = $size[0];
  21.          $heightBig = $size[1];
  22.                
  23.          $rat = $widthBig/$heightBig;
  24.          // si c'est plus large que long
  25.          if($widthBig >= $heightBig){
  26.   //vignette
  27.         $width = $plusGrandCote;
  28.   $height = $plusGrandCote/$rat;
  29.   // moyennes
  30.   if($widthBig<$moy_plusGrandCoteW){
  31.    $moy_width = $widthBig;
  32.    $moy_height = $heightBig;
  33.         }
  34.        else{
  35.    $moy_width = $moy_plusGrandCoteW;
  36.    $moy_height = $moy_plusGrandCoteW/$rat;    
  37.        }
  38.   }
  39.          // si c'est plus long que large
  40.          else{
  41.          //vignettes
  42.   $height = $plusGrandCote;
  43.   $width = $plusGrandCote*$rat;
  44.   //moyennes
  45.   if($heightBig<$moy_plusGrandCoteH){
  46.    $moy_width = $widthBig;
  47.    $moy_height = $heightBig;
  48.         }
  49.        else{
  50.        $moy_height = $moy_plusGrandCoteH;
  51.    $moy_width = $moy_plusGrandCoteH*$rat;
  52.        }
  53.          }
  54.        
  55.         $format = $size[2]; //1 = GIF, 2 = JPG, 3 = PNG, 5 = PSD, 6 = BMP
  56.         $currthumbfile = "./" . $thumb_dir . "/" . $thumb_prefix . $currfile;
  57.         $currmoyfile = "./" . $moy_dir . "/" . $moy_prefix . $currfile;
  58.        
  59.        
  60.         if (! file_exists($currthumbfile))
  61.         {        
  62.            if ($format == 2) //JPG
  63.           {
  64.             // Redimensionnement petite
  65.             $image_p = imagecreatetruecolor($width, $height);
  66.             $image = imagecreatefromjpeg($currfile);
  67.             imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $widthBig, $heightBig);
  68.              
  69.   // Redimensionnement grande
  70.             $image_g = imagecreatetruecolor($moy_width, $moy_height);
  71.             $image2 = imagecreatefromjpeg($currfile);
  72.             imagecopyresampled($image_g, $image2, 0, 0, 0, 0, $moy_width, $moy_height, $widthBig, $heightBig);             
  73.  
  74.                }         
  75.            else if ($format == 3) //PNG
  76.            {
  77.         // Redimensionnement --> on fais une imagette en jpg
  78.             $image_p = imagecreatetruecolor($width, $height);
  79.             $image = imagecreatefrompng($currfile);
  80.             imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $widthBig, $heightBig);
  81.            
  82.             // Redimensionnement grande
  83.             $image_g = imagecreatetruecolor($moy_width, $moy_height);
  84.             $image2 = imagecreatefrompng($currfile);
  85.             imagecopyresampled($image_g, $image2, 0, 0, 0, 0, $moy_width, $moy_height, $widthBig, $heightBig);
  86.             }
  87.             else if ($format == 1) //GIF
  88.            {
  89.         // Redimensionnement --> on fais une grosse image en jpg
  90.             $image_p = imagecreatetruecolor($width, $height);
  91.             $image = imagecreatefromgif($currfile);
  92.             imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $widthBig, $heightBig);
  93.            
  94.             // Redimensionnement grande
  95.             $image_g = imagecreatetruecolor($moy_width, $moy_height);
  96.             $image2 = imagecreatefromgif($currfile);
  97.             imagecopyresampled($image_g, $image2, 0, 0, 0, 0, $moy_width, $moy_height, $widthBig, $heightBig);
  98.             }     
  99.              
  100.              
  101.                                  
  102.            if (!$image)
  103.            {
  104.                $currthumbfile = $currfile;
  105.            }
  106.            else
  107.            { 
  108.            // imagejpeg($image_p, $currthumbfile, $quality);
  109.             ImageDestroy($image);
  110.             ImageDestroy($image_p);
  111.            }
  112.   if (!$image2)
  113.            {
  114.                $currmoyfile = $currfile;
  115.            }
  116.            else
  117.            { 
  118.  // imagejpeg($image_g, $currmoyfile, $moy_quality);
  119.             ImageDestroy($image2);
  120.             ImageDestroy($image_g);
  121.            }
  122.         }


 
 
merci d'avance !


Message édité par alpseb le 24-07-2007 à 20:20:56
mood
Publicité
Posté le 24-07-2007 à 20:19:46  profilanswer
 

n°1591368
alpseb
Posté le 25-07-2007 à 16:05:26  profilanswer
 

up

n°1591369
FlorentG
Posté le 25-07-2007 à 16:07:38  profilanswer
 

Peut-être en libérant certaines images plus tôt ? Genre dès la redimension, un imagedestroy, surtout pas à la fin de la boucle.
 
Maintenant va toujours y avoir des images qui boufferont trop de mémoire...

n°1591370
Taz
bisounours-codeur
Posté le 25-07-2007 à 16:08:30  profilanswer
 

bah ça bouffe trop de RAM pour le paramétrage PHP de ton hébergeur. T'y peux rien.

n°1591441
alpseb
Posté le 25-07-2007 à 18:15:34  profilanswer
 

sur mon free perso ca marche nikel avec 600 images
sur le free d'une amie, ca marche pas avec une seulle image...
les 2 serveurs sont parrmetrés à l'identique...

n°1592572
alpseb
Posté le 27-07-2007 à 18:17:22  profilanswer
 

:'(

n°1592574
Taz
bisounours-codeur
Posté le 27-07-2007 à 18:19:43  profilanswer
 

alpseb a écrit :

les 2 serveurs sont parrmetrés à l'identique...


ah ouais ? comment tu le sais ?

n°1592843
JeanLuc007
Posté le 28-07-2007 à 23:08:37  profilanswer
 

Bonsoir,
tu peux éventuellement essayer d'augmenter la mémoire allouée:
ini_set ( "memory_limit", "80M" ); en tout début de script.
Il faut voir si free l'autorise.
 
JeanLuc

n°1592856
Sve@r
Posté le 29-07-2007 à 00:20:21  profilanswer
 

alpseb a écrit :

les 2 serveurs sont parrmetrés à l'identique...


C'est pas forcément vrai. free offre une option pour avoir plus d'espace mais faut l'avoir demandé. Ptet que ton amie l'a pas demandé !!!


---------------
Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche.
n°1593485
alpseb
Posté le 30-07-2007 à 19:06:09  profilanswer
 

si si elle l'a demandé... et ici, c'est la ram qui manque pas l'espace disque... quand je regarde le phpinfo, la config est la meme

mood
Publicité
Posté le 30-07-2007 à 19:06:09  profilanswer
 

n°1593992
leflos5
On est ou on est pas :)
Posté le 31-07-2007 à 21:14:53  profilanswer
 

peut être que simplement ton site est sur un serveur qui fait rien où t'es le seul à lui tirer sur la gueule. Et que ton amie est sur un serveur avec quelques sites qui pompent en ressources (genre ce que tu fais si y'en a 3  en même temps ça tombe :D )
 
Peut être simplement que la config matos est différente ou apache et que ça déconne.
 
Vas faire un tour sur les NG de free pour saisir le mec qui gère ça il te diras surement plus facilement que quiconque ;=)

n°1972963
stanlauren​t
Posté le 11-03-2010 à 12:27:23  profilanswer
 

Sve@r a écrit :


C'est pas forcément vrai. free offre une option pour avoir plus d'espace mais faut l'avoir demandé. Ptet que ton amie l'a pas demandé !!!


 
Hello,
As-tu des infos sur cette option chez Free pour avoir plus de mémoire allouée ?
Je n'ai pas bcp cherché mais je ne trouve pas dans la config free.
Merci, d'avance
@+


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

  problème de Fatal error: Allowed memory size of 33554432 bytes exhaust

 

Sujets relatifs
MySQL: UTF8 vs. latin_swedish & error 1406problème d'accès variable entre deux threads
fichier .htaccess, error 500, Redirection impossibleProblème CSS sur un bouton
Probleme openGL et POO sous VC++Problème de type sur Variable de formulaire
probleme fread magicprobleme integration flash dans firefox
Problème avec fonction IF NOT EXISTProblème de closure ?
Plus de sujets relatifs à : problème de Fatal error: Allowed memory size of 33554432 bytes exhaust


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