[PHP] Problème Boucle redimensionner plusieurs images ...

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [PHP] Problème Boucle redimensionner plusieurs images ...

par Yanzi » 13 avr. 2007, 09:13

Salut a tous, (et bienvenue a moi sur php france.com)

bien que ce probleme soit résolu, je me permet de poster ;
en effet tu peux travailler de par paquet de 20 fichiers (une fois traités tu les met dans un autre dossier par exemple il restera que les fichiers non dimensionnés)

Sinon si le serveur est dédié et non mutualisé, j'aimerai savoir si tu a acces a php.ini car :

Code : Tout sélectionner

<?php phpinfo(); ?>
avec ceci tu pourra voir les valeur que tu utilises (je te conseille de la mettre dans une page a part, ca prend de la place)

A la valeur max_execution_time, par defaut en local et master c'est 30 secondes,
il est normalement possible de la modifier (en etant sur que toi seul pourra lancer ce script) une fois ton execution terminé, tu pourra remettre les valeur par defaut.

ou alors lance cette execution sur ta propre machine, il ne te restera qu'a uploader les image par ftp sur le repertoire "img_miniature" un truc comme cela

Voila mon post

bonne journée, courage a tous

par jimmyneutron » 10 avr. 2007, 17:46

réponse de la hotline:

Bonjour,

dans notre environnement cette variable n'a pas d'effet, nous avons des robots qui check en continu l'execution des scripts.

(au sujet du set_time_limit(); )

donc solution découper le programme en plusieurs partie pour retailler de 50 images en 50 ou moins ...

++

par jimmyneutron » 07 avr. 2007, 21:11

1ere réponse d'ovh

ce genre de prog prend du temps c'est normal
il vaudrait mieux que je scinde mon programme pour qu'il travail par 20 images ... donc de faire une todo ...

je vais creuser ... ça va dans ton sens, et je suis d'accord avec ce que tu dis pour la consommation de ressource limitée ...

mais je voudrais bien savoir pourquoi lorsque j'utilise set_time_limit(); et que le programme se coupe avant la fin, pourquoi aucune erreur ne me revient ... enfin, je vois avec eux et je reviens vers vous ...

merci ++

par Expreg » 07 avr. 2007, 00:00

... par expérience ce n'est pas forcément avec les services onéreux qu'on obtient le meilleur résultat ...
Ce n'est pas ce que j'ai dit !
Je veux juste te signaler qu'OVH ne va pas te donner les privilèges d'un serveur dédié à moins de 4 €/mois.

De plus, je te l'ai dit ton script est gourmand en ressource, d'autres que toi font pareil, à tous les points de vue.
Je vois mal OVH accepter cela.
Je penses donc que tu es face à une config bridée de manière à ne pas permettre des modifs intempestives réalisée à la volée par les possesseurs de plan A, B ou C :wink:

par Invité » 06 avr. 2007, 20:23

En fait tu veux rouler en Porche alors que tu as juste les moyens pour un scooter.
:lol:
... par expérience ce n'est pas forcément avec les services onéreux qu'on obtient le meilleur résultat ... on tourne 100 fois mieux avec ce pack à moins de 4€, qu'avec l'ancien dédié d'Amen qui était 25 fois plus cher ... mais bon je comprends ce que tu veux dire ...

ça ne me dérange pas de passer à une gamme haut dessus ... mais si on peut résoudre le problème autrement ça m'éviterait pas mal de boulot superflu...

safe_mode : off
max_execution_time : 30
valeurs par défaut d'après la doc...

c'est une version PHP 4.4.4 (j'espère que le pb ne vient tout simplement pas de là ?!?)

Re: [PHP] Problème Boucle redimensionner plusieurs images ..

par Expreg » 06 avr. 2007, 17:55

Pour info je suis sur un 90plan de chez OVH
Et tu penses vraiment qu'avec du mutalisé, OVH va te laisser faire ce que tu veux sur la config ???? 8-)
Ne rêves pas, c'est pas avec 3,71€/mois que tu vas pouvoir bénéficier d'une config le permettant, du moins je ne le penses pas.

En fait tu veux rouler en Porche alors que tu as juste les moyens pour un scooter. :wink:

Tiens juste par curiosité, quelle valeur pour les directives :
max_execution_time
safe_mode
sur ton plan ovh ? :?

par jimmyneutron » 06 avr. 2007, 15:29

ca ne viendrait pas de la capacité du dossier temporaire du ftp ...
je sais qu'on imagedestroy à chaque itération... mais il faut quand même du temps au serveur pour éxécuter les opérations ftp demandée par apache

j'ai envoyé un mail à ovh j'attends d'en savoir plus ...

par jimmyneutron » 06 avr. 2007, 13:56

j'ai regardé les logs ... rien d'anormal ... alors peut-être que je ne les ai pas bien interprétés, ou que je n'ai pas tout de disponible...

pour la bufferisation. je ne connaissais pas. j'ai regardé le manuel php, j'ai essayé selon vos indications mais rien à faire... l'erreur est toujours la même... le script bloque toujours au bout d'environs 70 itérations ou 150 si je retire la création des 'thumbs', et toujours sur la première ligne de la fonction 'imagecopyresampled' ...

en bloquant les ressources de mémoire, ini_set("memory_limit" , "16K");, idem...

donc je ne vois pas ... peut-être pouvez-vous me dire comment vous voyez le script avec les flush();

++

merci

par Expreg » 05 avr. 2007, 12:00

Ce qui veut dire que sleep() arrête aussi le temps ... mais ce n'est pas précisé: sleep(x) retarde l'exécution du programme pendant x secondes...
La fonction sleep n'agit pas sur le timeout()
Le timeout est une directive qui stipule une limite raisonnable au-delà de laquelle un script est sensé avoir été correctement exécuté, ceci pour éviter les surcharge sur le serveur.

par titerm » 05 avr. 2007, 11:53

bah non :) perso j'utilise less, more ou tail mais tu peux utiliser ce que tu veux...
le but c'est de trouver pourquoi ca s'arrete brutalement. Ca se fait via un shell, pas en php...

En revanche sous php, tu peux déjà soit mettre dans le php ini implicit_flush = On ou a la fin de chaque boucle, appeler un flush() histoire de voir au moins ce qui s'est passé jusque là.

par sadeq » 05 avr. 2007, 11:36

je pense aussi que c'est un problème de bufferisation, essaye de cadencer l'envoi du buffer de sortie dans ta boucle en utilisant les commandes ob_start et flush

par jimmyneutron » 05 avr. 2007, 11:05

[code]Peut etre un pb de limite mémoire...
Check les log d'erreur apache, php et system..
t 'as ptet tout simplemetn un segfault....[/code]

je ne vois pas trop comment faire...

avec des fonctions php qui interroge les logs d'apache etc... ???

par titerm » 05 avr. 2007, 10:54

Peut etre un pb de limite mémoire...
Check les log d'erreur apache, php et system..
t 'as ptet tout simplemetn un segfault....

par jimmyneutron » 05 avr. 2007, 09:42

set_time_limit(0); revient à ne pas donner de limite au temps d'execution de la boucle, je préfère donc limiter à 600 sec au cas où...

cette fonction marche très bien puisque si je l'enlève j'ai une erreur fatale au bout de 30 sec. et puis la mettre en début de code revient au même.

Le safe_mode a été supprimé à partir de PHP 6.0.0.

ce qui est étrange c'est que lorsque l'appli fonctionne (pour environ 100 photos 800x600) mon script s'éxécute jusqu'au bout.
alors que quand il échoue, la page ne retourne pas d'erreur (pourtant je n'ai pas d'@ devant mes fonctions) ... la page se recharge mais conserve l'URI de l'étape précédente... donc l'affichage n'est pas correcte...

ce que je ne comprend pas c'est pourquoi sans le set_time_limit(); l'appli bloque au bout de 30sec (comme prévu par défaut) alors que lorsque j'intègre des " echo(date("i:s")); " à chaque itération ... la boucle tourne pendant 37 sec...

par dogmongo » 05 avr. 2007, 00:21

set_time_limit(0);

tu as essayé ?? je te dis peu être une bêtise mais ca te donne pas le no limite ? et ne devrais tu pas la mettre au debut de ton code ?

de plus ca fonctionne que avec le safe mode , l'as tu ?