IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Attraper les erreurs mémoire


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2006
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Attraper les erreurs mémoire
    Bonjour à tous,

    voici mon problème : j'ai régulièrement des soucis de mémoire avec PHP, notamment lors de l'utilisation de la librairie GD sur de "gros" fichiers, sans réussir à attraper correctement ces erreurs.

    Voici un exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $imageGD = @imagecreatefromjpeg('monfichier.jpg') or die("Erreur mémoire.");
    Si une erreur mémoire se produit, rien ne se passe (les messages sont masqués par le "@" mais le "die" n'est pas activé).

    J'ai également tenté des choses du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    try { 
      $imageGD = imagecreatefromjpeg('monfichier.jpg');
    }
    catch (Exception $e) {
      echo $e;
    }
    Mais celà ne fonctionne pas non plus.

    Est-on condamné à ne pas pouvoir prévoir les erreurs d'allocation mémoire avec GD en PHP ? Je suis sûr que non, mais impossible de trouver comment faire...

    Merci d'avance !
    Pascal

  2. #2
    Membre expérimenté Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Points : 1 537
    Points
    1 537
    Par défaut
    1-lire la valeur de mémoire autorisé par PHP (memory_limit)
    2-estimer le besoin en taille suivant l'image (tu peux t'aider de memory_get_usage avec un sample de ton image ou alors tu calcules en faisant larg*haut*bit ...)
    si 2 > 1 alors stopper la chose.

    dans ce cas précis, c'est a toi de vérifier que tu as assez de mémoire avant de faire une action lourde, sinon emalloc() va te balancer l'erreur que tu connais sans que tu puisses la catché.


    --------
    est ce que tu penses bien a libérer la mémoire ?

Discussions similaires

  1. D6 Intercepter les erreurs : un attrape tout
    Par sgmsg dans le forum Débuter
    Réponses: 2
    Dernier message: 08/04/2014, 02h50
  2. Réponses: 1
    Dernier message: 13/09/2011, 15h22
  3. 'Attraper' les erreurs non traités
    Par snopims dans le forum ASP.NET
    Réponses: 4
    Dernier message: 08/04/2008, 10h54
  4. 'Attraper' les erreurs non traités
    Par CAML dans le forum Windows Forms
    Réponses: 7
    Dernier message: 13/04/2007, 14h19
  5. Programme détectant les erreurs de mémoire
    Par gids01 dans le forum MFC
    Réponses: 2
    Dernier message: 07/12/2005, 10h57

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo