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 :

[Système] Envoyer infos au navigateur pendant l'execution d'un script


Sujet :

Langage PHP

  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 151
    Par défaut [Système] Envoyer infos au navigateur pendant l'execution d'un script
    Bonjour tout le monde,

    Voilà j'ai un script qui génére des petites images. Le problème c'est que au bout d'un certain nombre d'images il me dit que ca va pas :p (mémoire dépassée ou bien temps d'exécution trop grand...)

    Alors je me demandais, y a t il moyen de faire en sorte que le script s'arrete toutes les 10 images par exemple, affiche, puis recommence ??

    Merci d'avance !

    ps : j'ai fait ca pour essayer :
    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
    function creerMiniatures($dossierOriginal,$largeur,$hauteur,$dossierDest){
        $i=0;
        if ($dir = opendir($dossierOriginal)) {
            while($file = readdir($dir)) {
                $parts = explode(".",$file);
                $points = count($parts);
                $points --;
                $ext = strtolower($parts[$points]);
                if($ext == "jpg" || $ext == "jpeg"){
                    $str = 'mini_'.$file;
                    if(!file_exists($str) && substr($file,0,5) != "mini_"){
                        $fichierSource = $file;
                        $largeurDestination = $largeur;
                        $hauteurDestination = $hauteur;
                        $im = ImageCreateTrueColor ($largeurDestination, $hauteurDestination)
                        or die ("Erreur lors de la création de l'image");
                        $source = ImageCreateFromJpeg($fichierSource);
                        $largeurSource = imagesx($source);
                        $hauteurSource = imagesy($source);
                        $blanc = ImageColorAllocate ($im, 255, 255, 255);
                        ImageCopyResized($im,$source,0,0,0,0,$largeurDestination,$hauteurDestination,$largeurSource,$hauteurSource);
                        ImageString($im, 0, 12, $hauteurDestination-18, "$fichierSource - ($largeurSource x $hauteurSource)", $blanc);
                        $miniature = "$dossierDest/mini_$fichierSource";
                        ImageJpeg ($im, $miniature);
                        $i++;
                        if($i==10) {
                            return false;
                        }
                    }
                }
            }
            return true;
            closedir($dir); // fermeture du dossier
        }
     
    }
    Avec ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    while(!creerMiniatures(".",200,150,".")){
        }
    Mais bon, il m'a dit "dépassement de mémoire" ...

    Edit : Mmmmh, je viens de rajouter un petit "sleep(1)" ca a marché, mais je trouve que c'est pas gégé comme idée ... De plus ce que je cherchais c'était plus une solution qui permettrais d'afficher celle qui sont déjà faite ... pendant que les autres chargent !

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    flush ?

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 151
    Par défaut
    oue j'y ai pensé
    mais j'aurais bien aimé aussi un truc qui génère les miniatures en arriere plan et un autre qui les affiche petit à petit .

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    Afficher une image petit à petit?
    Peux-tu être plus claire?
    Une par une? Avec un alpha? Petite devenant grande?

  5. #5
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 151
    Par défaut
    non non
    en fait j'ai beaucoup beaucoup de miniatures
    donc les afficher petit à petit mais en laissant la main à l'utilisateur ...
    Comme si cela chargeait en tache de fond !

  6. #6
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    254
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2007
    Messages : 254
    Par défaut
    Il est possible de saussissoner la requête PHP en sous requêtes et de les appeler une par une via AJAX.

  7. #7
    Rédacteur
    Avatar de marcha
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2003
    Messages
    1 571
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 571
    Par défaut
    Salut,

    Ce que tu peux aussi faire, c'est de créer les imagettes à la demande.

    dans les pages qui les affichent, tu mets

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <img src='imagette.php?id=1234' />
    et ta page imagette.php regarde si celle-ci a déjà été crée ( avec file_exists )
    et la renvoie avec readfile précédé des entête http adéquats. Sinon elle crée
    d'abord l'imagette et la sauve sur le serveur.

  8. #8
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    151
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Novembre 2004
    Messages : 151
    Par défaut
    hummm ca j'adore :p
    jvais essayer cette après midi
    merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Système] Loader pendant l'execution d'une tâche
    Par amans dans le forum Langage
    Réponses: 5
    Dernier message: 04/07/2008, 16h58
  2. [VBA-E]Pendant l'execution d'une macro
    Par benoue dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 17/03/2006, 18h28
  3. Réponses: 3
    Dernier message: 16/10/2005, 13h43
  4. [DEV] PL/SQL Message envoyé pendant l' execution
    Par ducho dans le forum PL/SQL
    Réponses: 1
    Dernier message: 13/07/2005, 08h04
  5. Choisir un DSN pendant l'execution
    Par seb83 dans le forum Bases de données
    Réponses: 4
    Dernier message: 22/02/2005, 14h32

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