djedie7 | Bonjour,
j'ai crée une fonction qui me permet de gérer ma galerie photo.
J'ai un dossier nommé 'FULL' qui contient mes images nommées 1.jpg, 2.jpg, ...
Le script crée 3 formats miniatures de ces photos (miniature, aperçu, zoom).
Tout fonctionne bien en local, bien que j'ai du rajouter un set_time_limit(0); afin de ne pas dépasser les 30s du time_limit de php.ini.
En local, donc, tout est ok.
Cependant, lorsque je test cette fonction sur mon hebergeur, tout commence bien, mais le script s'arrête vers la 8eme photo. :? Je pense qu'il doit y avoir un config de l'hebergeur qui évite la surcharge de son proc, mais bon...
Pour info, je suis chez 1and1
Quelles solutions pourriez-vous me proposer ?
Code :
- function creation($repertoire){
- // CREATION DES MINIATURES
- $home = $repertoire."/home/";
- $mini = $repertoire."/mini/";
- $big = $repertoire."/big/";
- $full = $repertoire."/full/";
- $nb=count_files($full, ".jpg", 0);
- // On crée le dossier
- mkdir($home);
- mkdir($mini);
- mkdir($big);
- set_time_limit(0);
- $i=1;
- while($i<=$nb) {
- $big_file = $full.$i.'.jpg';
- $source = imagecreatefromjpeg($big_file); // La photo est la source
- $largeur_source = imagesx($source);
- $hauteur_source = imagesy($source);
- if(($largeur_source)>($hauteur_source)){
- if ($i<6) $destination = imagecreatetruecolor(250, 187); // On crée la miniature vide
- $destination2 = imagecreatetruecolor(100, 75); // On crée la miniature vide
- $destination3 = imagecreatetruecolor(640, 480); // On crée la miniature vide
- }
- else {
- if ($i<6) $destination = imagecreatetruecolor(187,250); // On crée la miniature vide
- $destination2 = imagecreatetruecolor(75,100); // On crée la miniature vide
- $destination3 = imagecreatetruecolor(480,640); // On crée la miniature vide
- }
- // Les fonctions imagesx et imagesy renvoient la largeur et la hauteur d'une image
- if ($i<6) $largeur_destination = imagesx($destination);
- $largeur_destination2 = imagesx($destination2);
- $largeur_destination3 = imagesx($destination3);
- if ($i<6) $hauteur_destination = imagesy($destination);
- $hauteur_destination2 = imagesy($destination2);
- $hauteur_destination3 = imagesy($destination3);
- // On crée la miniature
- if ($i<6) imagecopyresampled($destination, $source, 0, 0, 0, 0, $largeur_destination, $hauteur_destination, $largeur_source, $hauteur_source);
- imagecopyresampled($destination2, $source, 0, 0, 0, 0, $largeur_destination2, $hauteur_destination2, $largeur_source, $hauteur_source);
- imagecopyresampled($destination3, $source, 0, 0, 0, 0, $largeur_destination3, $hauteur_destination3, $largeur_source, $hauteur_source);
- if ($i<6) $file_home = $home.$i.'.jpg';
- $file_mini = $mini.$i.'.jpg';
- $file_big = $big.$i.'.jpg';
- // On enregistre la miniature"
- if ($i<6) imagejpeg($destination, $file_home);
- imagejpeg($destination2, $file_mini);
- imagejpeg($destination3, $file_big);
- echo '<img src='.$file_mini.' alt="ok" /> ';
- $i++;
- }
- }
|
Merci d'avance pour vos réponses ! |