[PHP] maximum execution time...
Modérateur : Modérateurs
-
- Apprenti
- Messages : 35
- Inscription : mer. févr. 12, 2003 5:37 pm
[PHP] maximum execution time...
Fatal error: Maximum execution time of 30 seconds exceeded in ...
voilà l'erreur que j'obtiens quand j'exécute ma page php.
cela se produit alors que j'utilise "imagecreatefromJPEG" en envoyant diverses données vers ma base de données...
il est vrai que je passe en revue un grand nombre de fichiers (jpeg plus particulièrement) donc je comprend que le traitement de la page dure plus de 30 secondes mais voilà je ne sais pas comment optimiser le tout pour que cela soit moins long...
comment puis-je faire???
merci et a+++
voilà l'erreur que j'obtiens quand j'exécute ma page php.
cela se produit alors que j'utilise "imagecreatefromJPEG" en envoyant diverses données vers ma base de données...
il est vrai que je passe en revue un grand nombre de fichiers (jpeg plus particulièrement) donc je comprend que le traitement de la page dure plus de 30 secondes mais voilà je ne sais pas comment optimiser le tout pour que cela soit moins long...
comment puis-je faire???
merci et a+++
-
- Apprenti
- Messages : 35
- Inscription : mer. févr. 12, 2003 5:37 pm
voilà un peu de source:-)))
comme tu me l'a demandé voilà le souce de la plus grosse boucle du script :
c'est cette boucle for qui prends le plus de temps à l'exécution
le reste n'est que fioriture...
sur ce a+++ et merci
Code : Tout sélectionner
for ($A=0; $A<count($TABLEAU); $A++) {
$ID_DOSSIER = 1; /* ID POUR CHAQUE DOSSIER, RECOMMENCE A 1 AU DEBUT DU DOSSIER */
$TABLEAU[$A]["CHEMIN_COMPLET"] = str_replace("\\", "/", $TABLEAU[$A]["CHEMIN_COMPLET"]);
$OPEN_DIR2 = opendir($TABLEAU[$A]["CHEMIN_COMPLET"]);
chdir($TABLEAU[$A]["CHEMIN_COMPLET"]);
while ($NOM_FICHIER = readdir($OPEN_DIR2)) {
if (is_file($NOM_FICHIER)) {
$FILE_AND_EXTENSION = explode(".", $NOM_FICHIER);
if (($FILE_AND_EXTENSION[1] == "jpg") || ($FILE_AND_EXTENSION[1] == "JPG")) {
/* VARIABLES CONCERNANT LES IMAGES ET LES APERCUS */
$HANDLE = ImageCreateFromJPEG($TABLEAU[$A]["CHEMIN_COMPLET"].$NOM_FICHIER);
$DX = ImageSX($HANDLE);
$DY = ImageSY($HANDLE);
if (($DX == 1024) || ($DX == 640)) {
/* PETITE IMAGE */
$WIDTH_PTE_IMG = 128;
$HEIGHT_PTE_IMG = 96;
/* FNTR APERCU */
$WIDTH_FNTR_APERCU = 670;
$HEIGHT_FNTR_APERCU = 510;
}
elseif (($DX == 768) || ($DX == 480)) {
/* PETITE IMAGE */
$WIDTH_PTE_IMG = 96;
$HEIGHT_PTE_IMG = 128;
/* FNTR APERCU */
$WIDTH_FNTR_APERCU = 510;
$HEIGHT_FNTR_APERCU = 670;
}
ImageDestroy($HANDLE);
/* FIN PARAMETRES IMAGE, FNTR APERCU */
/* FIN VARIABLES CONCERNANT LES IMAGES ET LES APERCUS */
/* LISTE DES VARIABLES A TRANSMETTRE */
$CHEMIN_COMPLET = $TABLEAU[$A]["CHEMIN_COMPLET"];
$DOSSIER = $TABLEAU[$A]["DOSSIER"];
$PHOTO = $NOM_FICHIER;
$LARGEUR_INIT = $DX;
$LARGEUR = $WIDTH_PTE_IMG;
$HAUTEUR = $HEIGHT_PTE_IMG;
$LARGEUR_FNTR = $WIDTH_FNTR_APERCU;
$HAUTEUR_FNTR = $HEIGHT_FNTR_APERCU;
/* FIN LISTE DES VARIABLES A TRANSMETTRE */
/* INSERTION DES NOMS DES FICHIERS DANS LA BASE DE DONNEES */
$INSERT_NOM_PHOTO = @mysql_query("INSERT INTO photos ".
"( ".
"ID, ID_DOSSIER, CHEMIN_COMPLET, DOSSIER, PHOTO, ".
"LARGEUR_INIT, LARGEUR, HAUTEUR, LARGEUR_FNTR, HAUTEUR_FNTR ".
") ".
"VALUES ".
"( ".
"'$ID', '$ID_DOSSIER', '$CHEMIN_COMPLET', '$DOSSIER', '$PHOTO', ".
"'$LARGEUR_INIT', '$LARGEUR', '$HAUTEUR', '$LARGEUR_FNTR', '$HAUTEUR_FNTR' ".
")");
/* FIN INSERTION DES NOMS DES FICHIERS DANS LA BASE DE DONNEES */
$ID_DOSSIER++;
}
}
}
closedir($OPEN_DIR2);
}
c'est cette boucle for qui prends le plus de temps à l'exécution
le reste n'est que fioriture...
sur ce a+++ et merci
-
- Apprenti
- Messages : 35
- Inscription : mer. févr. 12, 2003 5:37 pm
je me disais aussi
c'est vrai que mon mesg à une autre gueule que qd je l'ai post tt à l'heure.
sinon tu n'as pas de solution pour mon prob?
y'a pas moyen de mettre une pause dans un script, ou alors un moyen pour arreter et reprendre le script ake apparement sur easyphp le temps d'exécution max c'est 30 secondes mais pour free il est de 5 sec, alors pour charger un max d'info c'est pas pratique...
et pour la puissance de la machine je pense pas que ce soit ça
ou alors j'ai vraiment besoin d'un truc surpuissant
sinon tant pis j'essayerai de trouver autre chose...
a+++ et merci
sinon tu n'as pas de solution pour mon prob?
y'a pas moyen de mettre une pause dans un script, ou alors un moyen pour arreter et reprendre le script ake apparement sur easyphp le temps d'exécution max c'est 30 secondes mais pour free il est de 5 sec, alors pour charger un max d'info c'est pas pratique...
et pour la puissance de la machine je pense pas que ce soit ça
ou alors j'ai vraiment besoin d'un truc surpuissant
sinon tant pis j'essayerai de trouver autre chose...
a+++ et merci
- bruce
- Superviseur
- Messages : 1410
- Inscription : mer. avr. 18, 2001 2:00 am
- Localisation : In da beat we trust !
- Contact :
Re: je me disais aussi
Je sais pas trop là à lire le script comme ça je vois pas de "problème" mais g pas été voir en détail... Essaye de chronometrer chaque étape (affichage d'un timestamp à chaque boucle) pour voir ou ça coince.the beginner a écrit :c'est vrai que mon mesg à une autre gueule que qd je l'ai post tt à l'heure.
sinon tu n'as pas de solution pour mon prob?
y'a pas moyen de mettre une pause dans un script, ou alors un moyen pour arreter et reprendre le script ake apparement sur easyphp le temps d'exécution max c'est 30 secondes mais pour free il est de 5 sec, alors pour charger un max d'info c'est pas pratique...
et pour la puissance de la machine je pense pas que ce soit ça
ou alors j'ai vraiment besoin d'un truc surpuissant
sinon tant pis j'essayerai de trouver autre chose...
a+++ et merci
-
- Apprenti
- Messages : 35
- Inscription : mer. févr. 12, 2003 5:37 pm
suite...
j'ai fait comme tu m'as dit (utilisation d'un timestamp) mais je ne trouve rien d'anormal.
le problème vient peut-être du fait que les dossiers à parcourir contiennent presque 300 fichiers pour un total de 100Mo???
je m'explique sur cette quantité : j'ai fait un truc qui me permet (comme zoombrowser par exemple) de faire un diaporama et des aperçus de photos.
maintenant tu vas me dire pourquoi faire un truc toi même quand tout existe déjà??? mais pour le "fun" (y'en a qui ne savent plus comment s'amuser )...
mais pour éviter ces problèmes eske tu me conseillerais par exemple de le programmer par l'intermédiaire d'un logiciel comme visual c++ ou borland c++ builder et pour cela abandonner l'histoire du diaporama par la page web???
sur ce merci et a+++
le problème vient peut-être du fait que les dossiers à parcourir contiennent presque 300 fichiers pour un total de 100Mo???
je m'explique sur cette quantité : j'ai fait un truc qui me permet (comme zoombrowser par exemple) de faire un diaporama et des aperçus de photos.
maintenant tu vas me dire pourquoi faire un truc toi même quand tout existe déjà??? mais pour le "fun" (y'en a qui ne savent plus comment s'amuser )...
mais pour éviter ces problèmes eske tu me conseillerais par exemple de le programmer par l'intermédiaire d'un logiciel comme visual c++ ou borland c++ builder et pour cela abandonner l'histoire du diaporama par la page web???
sur ce merci et a+++
-
- Apprenti
- Messages : 35
- Inscription : mer. févr. 12, 2003 5:37 pm
okai merci
c'est ce que j'ai fait finalement...
merci et a+++
merci et a+++
comme pour tout mes messages -> merci et a+++