[PHP] Retour d'info avec identify via exec

Retour d'info avec identify via exec [PHP] - PHP - Programmation

Marsh Posté le 25-04-2010 à 19:29:09    

bonjour,
 
dans un traitement j'appelle identify de Imagemagick pour vérifier si un fichier jpeg est bon.
 
exec("$identifyBin \"$file\"", $output, $return_var);
 
Je pensais retrouver les erreurs dans $return_var mais la valeur est toujours à zéro alors que j'ai ça dans mes fichiers log :
 
identify: Premature end of JPEG file `xxxxxxxxx/10841.jpg'.
identify: Corrupt JPEG data: premature end of data segment `xxxxxxxxxxxxxxxxxxx/10841.jpg'.
Premature end of JPEG file
 
comment puis-je récupérer  cette information et en faire un critère de traitement ?
 
Merci pour votre aide.


Message édité par gordon13 le 25-04-2010 à 19:32:31
Reply

Marsh Posté le 25-04-2010 à 19:29:09   

Reply

Marsh Posté le 26-04-2010 à 08:32:54    

En allant lire le contenu de $output?


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 09:29:35    

Merci de l'idée mais non et j'aurai dû le dire.
 
Le contenu de $output est :
 
/xxxxxxx/10841.jpg JPEG 3872x2592 3872x2592+0+0 DirectClass 8-bit 512kb
 
Apparemment rien qui ne m'indique un problème sur le fichier.

Reply

Marsh Posté le 26-04-2010 à 09:44:58    

regarde les options d'identify. Il y a probablement un switch de la ligne de commande pour qu'il t'affiche ces erreurs (ce qui les mettra dans $output) au lieu de seulement les logger.


Message édité par skeye le 26-04-2010 à 09:45:16

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 10:09:35    

fais shell_exec a la place

Message cité 1 fois
Message édité par stealth35 le 26-04-2010 à 10:09:42
Reply

Marsh Posté le 26-04-2010 à 10:13:13    

stealth35 a écrit :

fais shell_exec a la place


ça va pas changer grand-chose, si tout ce qui l'intéresse c'est d'obtenir ce qu'il y a dans le log...


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 10:17:33    

skeye a écrit :


ça va pas changer grand-chose, si tout ce qui l'intéresse c'est d'obtenir ce qu'il y a dans le log...


 
c'est bien toi qui lui a dis d'aller voir dans $output, l'affichage sera plus simple avec shell_exec qu'avec exec

Reply

Marsh Posté le 26-04-2010 à 10:19:14    

A tous les coups, son exécutable retourne 0 car il n'a eu aucun souci d'exécution : le fait que l'image soit corrompue ne le regarde pas.
 
Donc faut scanner la log, via un grep ou truc du genre.

Reply

Marsh Posté le 26-04-2010 à 10:45:02    

stealth35 a écrit :

 

c'est bien toi qui lui a dis d'aller voir dans $output, l'affichage sera plus simple avec shell_exec qu'avec exec


Non mais relis tout le thread, pitié.[:sadnoir]

Message cité 1 fois
Message édité par skeye le 26-04-2010 à 10:45:06

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 10:45:44    

Fred999 a écrit :

A tous les coups, son exécutable retourne 0 car il n'a eu aucun souci d'exécution : le fait que l'image soit corrompue ne le regarde pas.
 
Donc faut scanner la log, via un grep ou truc du genre.


 
sauf si l'outil qu'il appelle est capable d'afficher les erreurs avec un switch quelconque...[:jagstang]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 10:45:44   

Reply

Marsh Posté le 26-04-2010 à 10:47:53    

J'ai pas dit le contraire [:cosmoschtroumpf]
 
Ce serait effectivement + simple.

Reply

Marsh Posté le 26-04-2010 à 10:59:06    

skeye a écrit :


Non mais relis tout le thread, pitié.[:sadnoir]


 

Citation :

regarde les options d'identify. Il y a probablement un switch de la ligne de commande pour qu'il t'affiche ces erreurs (ce qui les mettra dans $output) au lieu de seulement les logger.


Reply

Marsh Posté le 26-04-2010 à 11:05:53    

stealth35 a écrit :

 
Citation :

regarde les options d'identify. Il y a probablement un switch de la ligne de commande pour qu'il t'affiche ces erreurs (ce qui les mettra dans $output) au lieu de seulement les logger.



 

oui, et? [:autobot]
Utiliser shell_exec ne change absolument rien au problème.


Message édité par skeye le 26-04-2010 à 11:06:03

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 11:08:06    

Citation :

oui, et? [:autobot]
Utiliser shell_exec ne change absolument rien au problème.


 
est ce que j'ai dis le contraire  :pt1cable:

Message cité 1 fois
Message édité par stealth35 le 26-04-2010 à 11:08:20
Reply

Marsh Posté le 26-04-2010 à 11:08:55    

stealth35 a écrit :

Citation :

oui, et? [:autobot]
Utiliser shell_exec ne change absolument rien au problème.


 
est ce que j'ai dis le contraire  :pt1cable:


...alors pourquoi tu lui dis d'utiliser shell_exec?[:mlc]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 11:15:23    

skeye a écrit :


...alors pourquoi tu lui dis d'utiliser shell_exec?[:mlc]


 
parce que c'est plus simple pour afficher l'output, exec retourne que la dernière ligne, pour tout afficher faut parser l'array $ouput
donc c'est plus simple et moins traitre de faire un

Code :
  1. echo shell_exec('ma command')
  2. //voir
  3. echo `ma command`;

Message cité 1 fois
Message édité par stealth35 le 26-04-2010 à 11:15:59
Reply

Marsh Posté le 26-04-2010 à 11:19:08    

stealth35 a écrit :


 
parce que c'est plus simple pour afficher l'output, exec retourne que la dernière ligne, pour tout afficher faut parser l'array $ouput
donc c'est plus simple et moins traitre de faire un

Code :
  1. echo shell_exec('ma command')
  2. //voir
  3. echo `ma command`;



Il n'a jamais dit qu'il voulait afficher le résultat.
Et exec ne retourne pas la dernière ligne de la commande, mais son code de retour.
Bref, ta réponse était hors sujet, c'est tout.[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 11:29:16    

skeye a écrit :


Il n'a jamais dit qu'il voulait afficher le résultat.
Et exec ne retourne pas la dernière ligne de la commande, mais son code de retour.
Bref, ta réponse était hors sujet, c'est tout.[:skeye]


 
non non exec retourne la dernière ligne lis un peu la doc stp
http://www.php.net/manual/fr/function.exec.php
 

Spoiler :

Valeurs de retour
 
La dernière ligne du résultat de la commande.


 
et comme tu le dis si bien  

skeye a écrit :


Il n'a jamais dit qu'il voulait afficher le résultat.


 
 

skeye a écrit :

regarde les options d'identify. Il y a probablement un switch de la ligne de commande pour qu'il t'affiche ces erreurs (ce qui les mettra dans $output) au lieu de seulement les logger.


 
c'est pas moi que dis d'aller voir la valeur de $output mais bien toi  :pt1cable:

Reply

Marsh Posté le 26-04-2010 à 11:30:28    


SYNOPSIS
       identify [options] input-file
 
OVERVIEW
       The identify program is a member of the ImageMagick(1) suite of  tools.
       It describes the format and characteristics of one or more image files.
       It also reports if an image is incomplete or corrupt.  The  information
       returned includes the image number, the file name, the width and height
       of the image, whether the image is colormapped or not,  the  number  of
       colors  in  the  image (by default off use -define unique=true option),
       the number of bytes in the image, the format of the image  (JPEG,  PNM,
       etc.),  and  finally  the number of seconds it took to read and process
       the image. Many more attributes are available with the verbose option.
 
       For more information about the identify command, point your browser  to
       file:///usr/share/doc/imagemagick/www/identify.html                  or
       http://www.imagemagick.org/script/identify.php.
 
DESCRIPTION
       Image Settings:
         -antialias           remove pixel-aliasing
         -authenticate value  decrypt image with this password
         -channel type        apply option to select image channels
         -crop geometry       cut out a rectangular region of the image
         -define format:option
                              define one or more image format options
         -define unique=true  return the number of unique colors in the image
         -density geometry    horizontal and vertical density of the image
         -depth value         image depth
         -extract geometry    extract area from image
         -format "string"     output formatted image characteristics
         -fuzz distance       colors within this distance are considered equal
         -interlace type      type of image interlacing scheme
         -interpolate method  pixel color interpolation method
         -limit type value    pixel cache resource limit
         -list type           Color, Configure, Delegate, Format, Magic,  Mod‐
       ule,
                              Resource, or Type
         -matte               store matte channel if the image has one
         -monitor             monitor progress
         -ping                efficiently determine image attributes
         -quiet               suppress all warning messages
         -regard-warnings     pay attention to warning messages
         -sampling-factor geometry
                              horizontal and vertical sampling factor
         -seed value          seed a new sequence of pseudo-random numbers
         -set attribute value set an image attribute
         -size geometry       width and height of image
         -strip               strip image of all profiles and comments
         -units type          the units of image resolution
         -verbose             print detailed information about the image
         -virtual-pixel method
                              virtual pixel access method
 
       Miscellaneous Options:
         -debug events        display copious debugging information
         -help                print program options
         -log format          format of debugging information
         -list type           print a list of supported option arguments
         -version             print version information
 
       By  default, the image format of `file' is determined by its magic num‐
       ber.  To specify a particular image format, precede the  filename  with
       an  image  format name and a colon (i.e. ps:image) or specify the image
       type as the filename suffix (i.e. image.ps).  Specify 'file' as '-' for
       standard input or output.


 
[:kiki]


---------------
uptime is for lousy system administrators what Viagra is for impotent people - mes unixeries - github me
Reply

Marsh Posté le 26-04-2010 à 11:34:00    

stealth35 a écrit :


 
non non exec retourne la dernière ligne lis un peu la doc stp
http://www.php.net/manual/fr/function.exec.php
 

Spoiler :

Valeurs de retour
 
La dernière ligne du résultat de la commande.




 
 

Citation :


return_var
Si l'argument return_var est présent en plus du tableau output, alors le statut de retour d'exécution sera inscrit dans cette variable.


 
[:dawak]
Quiconque lit la doc sait que le retour de la fonctione xec() ne sert à rien et qu'il faut utiliser les paramètres...[:el g]
 
 

stealth35 a écrit :

c'est pas moi que dis d'aller voir la valeur de $output mais bien toi  :pt1cable:


 
...et? Il veut pouvoir traiter le résultat de sa commande, putain de bordel de merde![:moule_bite]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 11:38:15    

skeye a écrit :

Quiconque lit la doc sait que le retour de la fonctione xec() ne sert à rien et qu'il faut utiliser les paramètres...[:el g]


 
lol énorme, on dirais une réplique de politique  :p

Reply

Marsh Posté le 26-04-2010 à 11:40:24    

stealth35 a écrit :


 
lol énorme, on dirais une réplique de politique  :p


...et sinon t'as une réponse qui soit pas complètement à-coté de la plaque à fournir, ou tu continues à faire le boulet juste pour le plaisir?[:petrus dei]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 26-04-2010 à 11:56:40    

skeye a écrit :


...et sinon t'as une réponse qui soit pas complètement à-coté de la plaque à fournir, ou tu continues à faire le boulet juste pour le plaisir?[:petrus dei]


 
roooo sois pas vexé   :hello:

Reply

Marsh Posté le 26-04-2010 à 13:59:08    

S'il vous plait, ne vous engueulez pas à cause d'une de mes questions.
 
Merci pour toutes les réponses.
 
black_lord, j'ai bien sûr fait le MAN mais je ne vois pas l'option qui me retourne ce que je veux. Si je comprends bien ton message ça doit y être et je vais être super énervé de ne pas l'avoir vu, mais là je ne vois pas. Si tu peux préciser, merci.

Reply

Marsh Posté le 26-04-2010 à 14:07:53    

fais shell_exec a la place


---------------
I'm failing as fast as I can !! -- Vision-360, vos photos en grand format -- !! -- Les nouilles c'est bon
Reply

Marsh Posté le 26-04-2010 à 14:35:13    

Oui je suis parti sur cette solution. merci.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed