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 :

Pb bizarre sur un script qui marche sans pb sur une dizaine de fichiers


Sujet :

Langage PHP

  1. #1
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut Pb bizarre sur un script qui marche sans pb sur une dizaine de fichiers
    Je rencontre un pb étrange sur un script plus ou moins maison de redimensionnement d'images.

    Il y a 70 photos issues d'appareil photos numériques, au format .JPG, et de dimensions 1024x6xx px dans un dossier.

    Je lance mon script pour en faire des thumbnails... Et au bout d'une dizaine (des fois 12, des fois 9 ...) d'images, pour, il s'arrête sans prévenir.. Pas une fois il a fait la totale... Any idea ?

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    <?
    Echo 'Generateur de thumbnails v.1.91.<br><br><br>';
     
    // Chemin de départ
    $dir_base = "../photos/";
     
    // Ouverture du dossier
    $opendir = opendir($dir_base);
     
    // Chemin de destination
    $dir_dst = "../photos/thumbs/";
     
    // Qualite de l'image finale
    $qual = "100";
     
    while ($f = readdir($opendir)) {
    	// si le fichier existe
    	if(is_file($dir_base.$f)) {
    	// ------------------------------------
    	$ExtfichierOK = '" jpg JPG jpeg JPEG png PNG gif GIF"'; // (l espace avant jpg est important)
    	// extension du fichier
    	$xplode = explode('.',$f);
    	$extension = $xplode[sizeof($xplode)-1]; // dernier element
    	$extension = strtolower($extension); // on met en minuscule 
    	// ------------------------------------
    	// si l extension correspond, on continue
    	if (strpos($ExtfichierOK,$extension) != '') {
    	// ------------------------------------
    	// creation de la ressource-image de l image source
    	switch ($extension) {
    	case "jpg":
    	case "JPG":
    	case "jpeg":
    	case "JPEG":
    	   $img_src = imagecreatefromjpeg($dir_base.$f);
    	   break;
    	case "png":
    	case "PNG":
    	   $img_src = imagecreatefrompng($dir_base.$f);
    	   break;
    	case "gif":
    	case "GIF":
    	   $img_src = imagecreatefromgif($dir_base.$f);
    	   break;
    	 // On peut également ouvrir les formats wbmp, xbm et xpm
    	 // (vérifier la configuration du serveur)
    	} // fin switch
    	// ------------------------------------
     
    	// dimensions de l image source
    	// Exemple avec imagesx() et imagesy()
    	$img_src_width = imagesx( $img_src );
    	$img_src_height = imagesy( $img_src );
    	echo 'Largeur originale : '.$img_src_width.' px<br>';
    	echo 'Hauteur originale : '.$img_src_height.' px<br>';
    	// ------------------------------------
     
    	// on veut une image de destination
    	// de 640 pixels de large sur 480 de haut MAXI
    	$img_src_width_max = 640;
    	$img_src_height_max = 480;
    	echo 'Largeur max. souhaitee : '.$img_src_width_max.' px<br>';
    	echo 'Hauteur max. souhaitee : '.$img_src_height_max.' px<br>';
     
    	// Nom du fichier de destination
    	$img_dst_name = 'thb-'.$f;
    	// $img_dst_name = 'thb-'.strtolower($f);
    	echo 'Travail de l image : <a href="'.$dir_base.$f.'" target="_blank">'.$dir_base.$f.'</a><br>';
    	echo 'Nom du fichier a creer : '.$img_dst_name.'<br>';
    	// ------------------------------------
     
    	// si l image source est plus grande : on redimensionne
    	if ($img_src_width>$img_dst_width || $img_src_height>$img_dst_height) {
    	// calcul de la taille de l image de destination
    	$ratiox = $img_src_width / $img_src_width_max; // ratio en largeur
    	$ratioy = $img_src_height / $img_src_height_max; // ratio en hauteur
    	$ratio = max($ratiox,$ratioy); // le plus grand
    	echo 'Ratio largeur : '.$ratiox.'<br>';
    	echo 'Ratio hauteur : '.$ratioy.'<br>';
    	echo 'Ratio selectionne : '.$ratio.'<br>';
    	// dimensions de l image dest
    	$img_dst_width = $img_src_width/$ratio;
    	$img_dst_height = $img_src_height/$ratio;
    	echo 'Nouvelle largeur : '.$img_dst_width.' px<br>';
    	echo 'Nouvelle hauteur : '.$img_dst_height.' px<br>';
    	// ------------------------------------
     
    	echo 'Qualite de la nouvelle image : '.$qual.'%<br>'; 
     
    	// Affichage de confirmation d'écriture
    	echo 'Nouvelle image : <a href="'.$dir_dst.$img_dst_name.'" target="_blank">'.$dir_dst.$img_dst_name.'</a>...&nbsp;';
     
    	// Creation d une ressource-image de l image de destination
    	// (noire par defaut)
    	$img_dst_resource = imagecreatetruecolor($img_dst_width, $img_dst_height);
    	// ------------------------------------
     
    	// REDIMENSIONNEMENT (copie, redimensionne, re-echantillonne)
    	ImageCopyResampled($img_dst_resource, $img_src, 0, 0, 0, 0, $img_dst_width, $img_dst_height, $img_src_width, $img_src_height);
    	// ------------------------------------
     
    	// ENREGISTREMENT (en fonction de l extension) avec qualite a 85%
    	 switch ($extension) { 
    	 case 'jpg':
    	 case 'JPG':
    	 case 'jpeg':
    	 case 'JPEG':
    		imagejpeg ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    	   break;
    	 case 'png':
    	 case 'PNG':
    		imagepng ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    	   break;
    	 case 'gif':
    	 case 'GIF':
    		imagegif ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    	   break;
    	 } // fin switch
    ?>
    <img src="../check.png" /><br /><br />
    <?
       } // fin si l image source est plus grande
      } // fin si l extension correspond
     } // fin si le fichier existe
    } // fin while
    // Fermeture du dossier
    closedir($opendir);
     
    echo '<br>Vos thumbnails sont disponibles dans le dossier '.$dir_dst.'<br>Merci de m avoir utilise... ;-)<br><br>';
    ?>
    Snif...

  2. #2
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Salut,
    tu dois dépasser le memory_size_limit. Tu peux déjà commencer par libérer les ressources à chaque fois avec imagedestroy(), ça peut aider ^^.
    A part ça plutôt que de faire ton test avec chaîne de caractères tu peux utiliser getimagesize() pour récupérer le type d'image ainsi que les dimensions.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $detail_img = getimagesize($_FILES['file']['tmp_name']);
    		switch ($detail_img[2])	{
    			case 1: //Gif 
    				$src_img = imagecreatefromgif($_FILES['file']['tmp_name']); break;
    			case 2: //Jpeg
    				$src_img = imagecreatefromjpeg($_FILES['file']['tmp_name']); break;
    			case 3: //Png
    				$src_img = imagecreatefrompng($_FILES['file']['tmp_name']); break;
    			default:
    				break;
    		}
     
    		$src_largeur = $detail_img[0];
    		$src_hauteur = $detail_img[1];

  3. #3
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut
    Merci de ton aide,

    Alors, pour imagedestroy(), je viens d'essayer dans tous les sens, rien n'y fait :

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    <?
    Echo 'Generateur de thumbnails v.1.9.2.<br><br><br>';
     
    // Chemin de départ
    $dir_base = "../photos/";
     
    // Ouverture du dossier
    $opendir = opendir($dir_base);
     
    // Chemin de destination
    $dir_dst = "../photos/thumbs/";
     
    // Qualite de l'image finale
    $qual = "100";
     
    while ($f = readdir($opendir)) {
    	// si le fichier existe
    	if(is_file($dir_base.$f)) {
    	// ------------------------------------
    	$ExtfichierOK = '" jpg JPG jpeg JPEG png PNG gif GIF"'; // (l espace avant jpg est important)
    	// extension du fichier
    	$xplode = explode('.',$f);
    	$extension = $xplode[sizeof($xplode)-1]; // dernier element
    	$extension = strtolower($extension); // on met en minuscule 
    	// ------------------------------------
    	// si l extension correspond, on continue
    	if (strpos($ExtfichierOK,$extension) != '') {
    	// ------------------------------------
    	// creation de la ressource-image de l image source
    	switch ($extension) {
    	case "jpg":
    	case "JPG":
    	case "jpeg":
    	case "JPEG":
    	   $img_src = imagecreatefromjpeg($dir_base.$f);
    	   break;
    	case "png":
    	case "PNG":
    	   $img_src = imagecreatefrompng($dir_base.$f);
    	   break;
    	case "gif":
    	case "GIF":
    	   $img_src = imagecreatefromgif($dir_base.$f);
    	   break;
    	 // On peut également ouvrir les formats wbmp, xbm et xpm
    	 // (vérifier la configuration du serveur)
    	} // fin switch
    	// ------------------------------------
     
    	// dimensions de l image source
    	// Exemple avec imagesx() et imagesy()
    	$img_src_width = imagesx( $img_src );
    	$img_src_height = imagesy( $img_src );
    	echo 'Largeur originale : '.$img_src_width.' px<br>';
    	echo 'Hauteur originale : '.$img_src_height.' px<br>';
    	// ------------------------------------
     
    	// on veut une image de destination
    	// de 640 pixels de large sur 480 de haut MAXI
    	$img_src_width_max = 640;
    	$img_src_height_max = 480;
    	echo 'Largeur max. souhaitee : '.$img_src_width_max.' px<br>';
    	echo 'Hauteur max. souhaitee : '.$img_src_height_max.' px<br>';
     
    	// Nom du fichier de destination
    	$img_dst_name = 'thb-'.$f;
    	// $img_dst_name = 'thb-'.strtolower($f);
    	echo 'Travail de l image : <a href="'.$dir_base.$f.'" target="_blank">'.$dir_base.$f.'</a><br>';
    	echo 'Nom du fichier a creer : '.$img_dst_name.'<br>';
    	// ------------------------------------
     
    	// si l image source est plus grande : on redimensionne
    	if ($img_src_width>$img_dst_width || $img_src_height>$img_dst_height) {
    	// calcul de la taille de l image de destination
    	$ratiox = $img_src_width / $img_src_width_max; // ratio en largeur
    	$ratioy = $img_src_height / $img_src_height_max; // ratio en hauteur
    	$ratio = max($ratiox,$ratioy); // le plus grand
    	echo 'Ratio largeur : '.$ratiox.'<br>';
    	echo 'Ratio hauteur : '.$ratioy.'<br>';
    	echo 'Ratio selectionne : '.$ratio.'<br>';
    	// dimensions de l image dest
    	$img_dst_width = $img_src_width/$ratio;
    	$img_dst_height = $img_src_height/$ratio;
    	echo 'Nouvelle largeur : '.$img_dst_width.' px<br>';
    	echo 'Nouvelle hauteur : '.$img_dst_height.' px<br>';
    	// ------------------------------------
     
    	echo 'Qualite de la nouvelle image : '.$qual.'%<br>'; 
     
    	// Affichage de confirmation d'écriture
    	echo 'Nouvelle image : <a href="'.$dir_dst.$img_dst_name.'" target="_blank">'.$dir_dst.$img_dst_name.'</a>...<br>';
     
    	// Creation d une ressource-image de l image de destination
    	// (noire par defaut)
    	$img_dst_resource = imagecreatetruecolor($img_dst_width, $img_dst_height);
    	// ------------------------------------
     
    	// REDIMENSIONNEMENT (copie, redimensionne, re-echantillonne)
    	ImageCopyResampled($img_dst_resource, $img_src, 0, 0, 0, 0, $img_dst_width, $img_dst_height, $img_src_width, $img_src_height);
    	// ------------------------------------
     
    	// ENREGISTREMENT (en fonction de l extension) avec qualite a xxx%
    	 switch ($extension) { 
    	 case 'jpg':
    	 case 'JPG':
    	 case 'jpeg':
    	 case 'JPEG':
    		imagejpeg ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    	   break;
    	 case 'png':
    	 case 'PNG':
    		imagepng ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    	   break;
    	 case 'gif':
    	 case 'GIF':
    		imagegif ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    	   break;
    	 } // fin switch
       } // fin si l image source est plus grande
      } // fin si l extension correspond
     } // fin si le fichier existe
     
    echo 'Suppression des valeurs tampons...&nbsp;';
    imagedestroy ($f);
    imagedestroy ($img_src);
    imagedestroy ($img_dst_name);
    imagedestroy ($img_dst_resource);
    echo '( - '.$f.' - et - '.$img_dst_name.' - )';
    ?>
    <img src="../check.png" /><br /><br />
    <?
     
    } // fin while
    // Fermeture du dossier
    closedir($opendir);
     
    echo '<br>Vos thumbnails sont disponibles dans le dossier '.$dir_dst.'<br>Merci de m avoir utilise... ;-)<br><br>';
    ?>
    Pour getimagesize(), je n'y arrive pas, peux tu concrétiser ta pensée ?

  4. #4
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Il faut que tu les mettes dans ta boucle les imagedestroy(). [edit] en fait ils y sont ^^ [/]
    Sinon c'est peut-être le time out, si t'as accès au php.ini tu peux essayer de l'augmenter. C'est bizzare que t'aies pas de message d'erreur, t'es en local ?

  5. #5
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Il faut que tu les mettes dans ta boucle les imagedestroy().
    Sinon c'est peut-être le time out, si t'as accès au php.ini tu peux essayer de l'augmenter. C'est bizzare que t'aies pas de message d'erreur, t'es en local ?
    En mettant les imagesdestroy() la ou ils sont, ce n'est pas suffisant ? :

    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
    (...)
    	 } // fin switch
       } // fin si l image source est plus grande
      } // fin si l extension correspond
     } // fin si le fichier existe
     
    echo 'Suppression des valeurs tampons...&nbsp;';
    imagedestroy ($f);
    imagedestroy ($img_src);
    imagedestroy ($img_dst_name);
    imagedestroy ($img_dst_resource);
    echo '( - '.$f.' - et - '.$img_dst_name.' - )';
    ?>
    <img src="../check.png" /><br /><br />
    <?
     
    } // fin while
    // Fermeture du dossier
    closedir($opendir);
    (...)
    Pour le php.ini, je ne pense pas, et non, je ne suis pas en local mais hébergé chez 1and1...

  6. #6
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    L'affichage des erreurs doit être désactivé tu peux tenter de l'activer en mettant error_reporting(E_ALL); en haut de page.
    A priori il y a des chances que les 8 Mo de mémoire max par défaut ou le max execution time soit dépassés. Est-ce que ça marche si tu mets moins d'images dans le dossier ?

  7. #7
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    L'affichage des erreurs doit être désactivé tu peux tenter de l'activer en mettant error_reporting(E_ALL); en haut de page.
    A priori il y a des chances que les 8 Mo de mémoire max par défaut ou le max execution time soit dépassés. Est-ce que ça marche si tu mets moins d'images dans le dossier ?
    Oui, ça marchait avec 5 images sans pbs...
    C'est assez gênant, aucune soluce ?
    J'ai vraiment besoin de ce script qui est la clef de voute de mon nouveau site (que je viens d'ailleurs de finir...)

  8. #8
    Membre émérite Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Points : 2 273
    Points
    2 273
    Par défaut
    Il semblerait que tu puisses modifier la config du serveur en uploadant un php.ini dans le dossier ou se trouve ton script (en tout cas sur les dédiés). Tu peux essayer d'uploader le php.ini suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error_reporting  =  E_ALL
    display_errors = On
    Ensuite en exécutant ton script tu devrais enfin voir l'erreur qui se produit.
    Si c'est un problème de time out tu peux ajouter dans le php.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    max_execution_time = 50000
    et augmenter la valeur 50000 (apparemment c'est 50000 ms par défaut chez 1&1).
    Si c'est la mémoire :

    Pour voir si les modifs fonctionnent tu peux appeler phpinfo() dans ton script et vérifier que les valeurs on bien été modifiées.

  9. #9
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut
    Citation Envoyé par Djakisback Voir le message
    Il semblerait que tu puisses modifier la config du serveur en uploadant un php.ini dans le dossier ou se trouve ton script (en tout cas sur les dédiés). Tu peux essayer d'uploader le php.ini suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    error_reporting  =  E_ALL
    display_errors = On
    Ensuite en exécutant ton script tu devrais enfin voir l'erreur qui se produit.
    (...)
    Alors, je l'ai fait.
    Ça verbose en effet bien :

    (..)
    Warning: imagedestroy(): supplied argument is not a valid Image resource in /homepages/19/d179416033/htdocs/mon_site/pict/photos/gen.php on line 124

    Notice: Undefined variable: img_src in /homepages/19/d179416033/htdocs/mon_site/pict/photos/gen.php on line 125

    Warning: imagedestroy(): supplied argument is not a valid Image resource in /homepages/19/d179416033/htdocs/mon_site/pict/photos/gen.php on line 125

    Notice: Undefined variable: img_dst_name in /homepages/19/d179416033/htdocs/mon_site/pict/photos/gen.php on line 126

    Warning: imagedestroy(): supplied argument is not a valid Image resource in /homepages/19/d179416033/htdocs/mon_site/pict/photos/gen.php on line 126

    Notice: Undefined variable: img_dst_resource in /homepages/19/d179416033/htdocs/CHARREYRE/pict/photos/gen.php on line 127

    Warning: imagedestroy(): supplied argument is not a valid Image resource in /homepages/19/d179416033/htdocs/mon_site/pict/photos/gen.php on line 127

    Notice: Undefined variable: img_dst_name in /homepages/19/d179416033/htdocs/mon_site/pict/photos/gen.php on line 128
    (...)
    Erf... Qu'est ce donc que ce mic-mac ... ?

    Citation Envoyé par Djakisback Voir le message
    (...)Si c'est un problème de time out tu peux ajouter dans le php.ini :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    max_execution_time = 50000
    et augmenter la valeur 50000 (apparemment c'est 50000 ms par défaut chez 1&1).
    Si c'est la mémoire :

    (...)
    Aucune des 2 modifs ne semblent aider, le script s'arrête toujours plus ou moins au même endroit...

    Any idea ?

  10. #10
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut
    J'ai avancé, les erreurs était dues à des inversions de scripts...

    Bien, bah maintenant, aucun erreur, mais le script s'arrête purement et simplement sans verbose au bout d'une dizaine d'images traitées...


  11. #11
    Membre du Club Avatar de Casio
    Homme Profil pro
    Historien numérique
    Inscrit en
    Novembre 2005
    Messages
    312
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Historien numérique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Novembre 2005
    Messages : 312
    Points : 59
    Points
    59
    Par défaut
    J'en suis la, et pas plus de verbose... Le script s'arrête purement et simplement au bout d'une dizaine d'images, sans aller jusqu'à la fin du while... (il n'affiche pas le code hors while)

    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
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    <?
    Echo 'Generateur de thumbnails v.1.9.3.<br><br><br>';
     
    // Memoire tampon PHP
    set_time_limit(500);
     
    // Chemin de départ
    $dir_base = "../photos/";
     
    // Ouverture du dossier
    $opendir = opendir($dir_base);
     
    // Chemin de destination
    $dir_dst = "../photos/thumbs/";
     
    // Qualite de l'image finale
    $qual = "100";
     
    while ($f = readdir($opendir)) {
    	// si le fichier existe
    	if(is_file($dir_base.$f)) {
    	// ------------------------------------
    	$ExtfichierOK = '" jpg JPG jpeg JPEG png PNG gif GIF"'; // (l espace avant jpg est important)
    	// extension du fichier
    	$xplode = explode('.',$f);
    	$extension = $xplode[sizeof($xplode)-1]; // dernier element
    	$extension = strtolower($extension); // on met en minuscule
    	echo 'Extension du fichier : '.$extension.'<br>';
    	// ------------------------------------
    	// si l extension correspond, on continue
    	if (strpos($ExtfichierOK,$extension) != '') {
    	// ------------------------------------
    	// creation de la ressource-image de l image source
    	switch ($extension) {
    	case "jpg":
    	case "JPG":
    	case "jpeg":
    	case "JPEG":
    	   $img_src = imagecreatefromjpeg($dir_base.$f);
    	   break;
    	case "png":
    	case "PNG":
    	   $img_src = imagecreatefrompng($dir_base.$f);
    	   break;
    	case "gif":
    	case "GIF":
    	   $img_src = imagecreatefromgif($dir_base.$f);
    	   break;
    	 // On peut également ouvrir les formats wbmp, xbm et xpm
    	 // (vérifier la configuration du serveur)
    	} // fin switch
    	// ------------------------------------
     
    	// dimensions de l image source
    	// Exemple avec imagesx() et imagesy()
    	$img_src_width = imagesx( $img_src );
    	$img_src_height = imagesy( $img_src );
    	echo 'Largeur originale : '.$img_src_width.' px<br>';
    	echo 'Hauteur originale : '.$img_src_height.' px<br>';
    	// ------------------------------------
     
    	// on veut une image de destination
    	// de 640 pixels de large sur 480 de haut MAXI
    	$img_src_width_max = 640;
    	$img_src_height_max = 480;
    	echo 'Largeur max. souhaitee : '.$img_src_width_max.' px<br>';
    	echo 'Hauteur max. souhaitee : '.$img_src_height_max.' px<br>';
     
    	// Nom du fichier de destination
    	$img_dst_name = 'thb-'.$f;
    	// $img_dst_name = 'thb-'.strtolower($f);
    	echo 'Travail de l image : <a href="'.$dir_base.$f.'" target="_blank">'.$dir_base.$f.'</a><br>';
    	echo 'Nom du fichier a creer : '.$img_dst_name.'<br>';
    	// ------------------------------------
     
    	// calcul de la taille de l image de destination
    	$ratiox = $img_src_width / $img_src_width_max; // ratio en largeur
    	$ratioy = $img_src_height / $img_src_height_max; // ratio en hauteur
    	$ratio = max($ratiox,$ratioy); // le plus grand
    	echo 'Ratio largeur : '.$ratiox.'<br>';
    	echo 'Ratio hauteur : '.$ratioy.'<br>';
    	echo 'Ratio selectionne : '.$ratio.'<br>';
    	// dimensions de l image dest
    	$img_dst_width = $img_src_width/$ratio;
    	$img_dst_height = $img_src_height/$ratio;
    	echo 'Nouvelle largeur : '.$img_dst_width.' px<br>';
    	echo 'Nouvelle hauteur : '.$img_dst_height.' px<br>';
    	// ------------------------------------
     
    	// si l image source est plus grande : on redimensionne
    	if ($img_src_width>$img_dst_width || $img_src_height>$img_dst_height) {
     
    	echo 'Qualite de la nouvelle image : '.$qual.'%<br>'; 
     
    	// Creation d une ressource-image de l image de destination
    	// (noire par defaut)
    	$img_dst_resource = imagecreatetruecolor($img_dst_width, $img_dst_height);
    	// ------------------------------------
     
    	// REDIMENSIONNEMENT (copie, redimensionne, re-echantillonne)
    	ImageCopyResampled($img_dst_resource, $img_src, 0, 0, 0, 0, $img_dst_width, $img_dst_height, $img_src_width, $img_src_height);
    	// ------------------------------------
     
    	// ENREGISTREMENT (en fonction de l extension) avec qualite a xxx%
    	 switch ($extension) { 
    	 case 'jpg':
    	 case 'JPG':
    	 case 'jpeg':
    	 case 'JPEG':
    		imagejpeg ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    		echo 'Suppression des valeurs tampons...&nbsp;( - '.$f.' - et - '.$img_dst_name.' - )';
    		imagedestroy ($img_src);
    		imagedestroy ($img_dst_resource);
    		echo '&nbsp;<img src="../check.png" /><br>';
    		// Affichage de confirmation d'écriture
    		echo 'Nouvelle image : <a href="'.$dir_dst.$img_dst_name.'" target="_blank">'.$dir_dst.$img_dst_name.'</a>...&nbsp;<img src="../check.png" /><br /><br />';
    		break;
    	 case 'png':
    	 case 'PNG':
    		imagepng ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    		echo 'Suppression des valeurs tampons...&nbsp;( - '.$f.' - et - '.$img_dst_name.' - )';
    		imagedestroy ($img_src);
    		imagedestroy ($img_dst_resource);
    		echo '&nbsp;<img src="../check.png" />';
    		// Affichage de confirmation d'écriture
    		echo 'Nouvelle image : <a href="'.$dir_dst.$img_dst_name.'" target="_blank">'.$dir_dst.$img_dst_name.'</a>...&nbsp;<img src="../check.png" /><br /><br />';
    		break;
    	 case 'gif':
    	 case 'GIF':
    		imagegif ($img_dst_resource, $dir_dst.$img_dst_name, $qual);
    		echo 'Suppression des valeurs tampons...&nbsp;( - '.$f.' - et - '.$img_dst_name.' - )';
    		imagedestroy ($img_src);
    		imagedestroy ($img_dst_resource);
    		echo '&nbsp;<img src="../check.png" />';
    		// Affichage de confirmation d'écriture
    		echo 'Nouvelle image : <a href="'.$dir_dst.$img_dst_name.'" target="_blank">'.$dir_dst.$img_dst_name.'</a>...&nbsp;<img src="../check.png" /><br /><br />';
    		break;
    	 } // fin switch
       } // fin si l image source est plus grande
      } // fin si l extension correspond
      else
      echo 'Extension non reconnue... Fichier suivant...<br><br>';
      // fin si l extension ne correspond pas
     } // fin si le fichier existe
    } // fin while
     
    closedir($opendir); // Fermeture du dossier
     
    echo '<br>Vos thumbnails sont disponibles dans le dossier '.$dir_dst.'<br>Merci de m avoir utilise... ;-)<br><br>';
    ?>

Discussions similaires

  1. Un script qui marche sur IE et pas sur FF
    Par zooffy dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2011, 08h45
  2. script qui marche en locale mais pas sur le web
    Par koKoTis dans le forum Langage
    Réponses: 7
    Dernier message: 08/09/2008, 16h07
  3. Détection Javascript via PHP, conseil sur un script qui marche
    Par Stnaire dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/08/2008, 23h47
  4. Script qui marche mais pas elegant[newbie]
    Par billybob2006 dans le forum Langage
    Réponses: 4
    Dernier message: 21/10/2005, 12h25
  5. script qui marche pas...
    Par jpg dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/10/2004, 14h19

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