[PHP] Pb sur un script pour retailler des img
Résolu
jimmyneutron
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
jimmyneutron Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
jimmyneutron Messages postés 35 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
voici ma boucle qui traite tous les fichiers du tableau $tab_online:
Si je la laisse comme ça, le serveur me retourne:
Fatal error: Maximum execution time of 30 seconds exceeded in /home ...
et une partie des photos n'est pas traitée.
Si j'ajoute set_time_limit(300); pour repousser le timeout à 5 min, l'erreur ne s'affiche pas mais l'opération n'aboutie pas non plus...
En isolant avec des 'echo' avant et après les fonctions, puis en chronométrant la vitesse d'éxécution des fonctions: il se trouve que l'application bloque au niveau de "imagecopyresampled" mais jamais sur la même image. Ce qui exclu le problème de la source.
J'ai essayé de mettre un sleep(1); dans la boucle pour ralentir l'éxécution au càs où le problème viendrait du fait que l'appli s'emballerait.
J'ai aussi essayé avec une "function" ...
Rien à faire...
Ce que je ne comprend pas c'est le timeout...
avec une simple boucle
for($i=0; $i<100; $i++)
{
sleep(1); // pause d'1sec à chaque itération
}
l'application doit donc durer 100 sec. Eh bien là, pas de Fatal error: Maximum execution time of 30 seconds exceeded in /home ...
Pour info je suis sur un 90plan de chez OVH
Merci pour les infos...
voici ma boucle qui traite tous les fichiers du tableau $tab_online:
for($i=0; $i<count($tab_online); $i++) { $src = "http://mon.site.com/".str_replace(" ", "%20", $tab_online[$i]); if (substr($src, -3) == "jpg") { $img = imagecreatefromjpeg($src); $size = getimagesize($src); $max_width = 800; $max_height = 600; $width = $size[0]; $height = $size[1]; if ( $width > $height ) { $dst_height = $height * $max_width / $width; $dst_width = $max_width; } else { $dst_width = $width * $max_height / $height; $dst_height = $max_height; } $dst = imagecreatetruecolor(round($dst_width), round($dst_height)); $dst_thumbs = imagecreatetruecolor(round($dst_width * 25 / 100), round($dst_height * 25 / 100)); imagecopyresampled($dst, $img, 0, 0, 0, 0, round($dst_width), round($dst_height), $width, $height); imagecopyresampled($dst_thumbs, $img, 0, 0, 0, 0, round($dst_width * 25 / 100), round($dst_height * 25 / 100), $width, $height); imagejpeg($dst, "../../photos/".$new_dir."/".$i.".jpg"); imagejpeg($dst_thumbs, "../../photos/".$new_dir."/thumbs/".$i.".jpg"); imagedestroy($img); imagedestroy($dst); imagedestroy($dst_thumbs);
Si je la laisse comme ça, le serveur me retourne:
Fatal error: Maximum execution time of 30 seconds exceeded in /home ...
et une partie des photos n'est pas traitée.
Si j'ajoute set_time_limit(300); pour repousser le timeout à 5 min, l'erreur ne s'affiche pas mais l'opération n'aboutie pas non plus...
En isolant avec des 'echo' avant et après les fonctions, puis en chronométrant la vitesse d'éxécution des fonctions: il se trouve que l'application bloque au niveau de "imagecopyresampled" mais jamais sur la même image. Ce qui exclu le problème de la source.
J'ai essayé de mettre un sleep(1); dans la boucle pour ralentir l'éxécution au càs où le problème viendrait du fait que l'appli s'emballerait.
J'ai aussi essayé avec une "function" ...
Rien à faire...
Ce que je ne comprend pas c'est le timeout...
avec une simple boucle
for($i=0; $i<100; $i++)
{
sleep(1); // pause d'1sec à chaque itération
}
l'application doit donc durer 100 sec. Eh bien là, pas de Fatal error: Maximum execution time of 30 seconds exceeded in /home ...
Pour info je suis sur un 90plan de chez OVH
Merci pour les infos...
A voir également:
- [PHP] Pb sur un script pour retailler des img
- Img burn - Télécharger - Gravure
- Script vidéo youtube - Guide
- Fichier img - Télécharger - Photo & Graphisme
- Easy php - Télécharger - Divers Web & Internet
- Mas script - Accueil - Windows
10 réponses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
si tu peux, essaye le même script sur un autre hébergeur, je sais que des fois sur certaines offres d'ovh il y a des soucis de temps d'exécution..
les fonctions de traitement d'image sont présentes sur free (enfin certaines puisque j'en utilise).
Sinon essaye tout simplement avec easyphp, ça fera déja un point de comparaison.
Sinon essaye tout simplement avec easyphp, ça fera déja un point de comparaison.
les fonctions gd sont peut-être sur free mais pas la gestion ftp
j'avais pas pensé à easyphp je vais voir...
la hotline d'ovh vient de me répondre... je vais voir ça ...
merci
j'avais pas pensé à easyphp je vais voir...
la hotline d'ovh vient de me répondre... je vais voir ça ...
merci