2010-09-01 25 views
-1

J'essaie d'utiliser le script suivant pour compter le nombre de pages pdf dans un fichier pdf.droit chemin d'image étant référencé dans exec() dans php

$filename = $_ENV{'HOMEDIR'}."/www/path/to/pdf/file"; 
$cmd = "/usr/local/nf/bin/identify -density 12 -format '%p' '$filename' "; 

$out = array(); 

exec($cmd,$out,$error); 

foreach($out as $f=>$v) 
{ 
    echo "$f = $v "; 
} 

Cependant, je n'ai pas de sortie. Je pense que c'est un problème lié au chemin. Comment faire référence aux chemins dans les commandes de ligne de commande? Toute aide utile s'il vous plaît!

grâce Rahul

+1

(- 1) Eh bien, $ filename est un chemin valide ou n ot? Le chemin d'identification est-il correct? Nous ne pouvons pas savoir, et nous ne pouvons pas le savoir. –

Répondre

0

Avez-vous vérifié pour voir si des erreurs sont signalées par PHP? Si des erreurs se produisent dans le code PHP? Avez-vous essayé d'instrumentation votre code pour détecter les problèmes potentiels (par exemple print var_export (file_exists ($ filename), true) ;? Avez-vous vérifié la valeur de retour de exec (...)? Le contenu de la variable $ error définie par exec (Avez-vous vérifié que le chemin vers l'exécutable (identifier) ​​est correct? Il peut être différent pour le serveur web que lorsque vous accédez au système via ssh/telnet/console. ? uid webserver Avez-vous vérifié si le fichier pdf est lisible par le uid webserver

0

d'abord, vous devez vous assurer que le chemin vers le fichier pdf existe, quelque chose comme ceci:

$filename = "..."; 

// Brute force, maybe you could use some other "nicer" error handling 
if(!file_exists($filename)) die('File does not exist!'); 

Ensuite, je vérifierait si

  • PHP a les droits d'accès pour exécuter des commandes Imagemagick (droits d'accès au répertoire/exécutables Imagemagick)
  • ImageMagick est autorisé à lire le fichier et écrire sur le chemin d'accès spécifié (droits d'accès répertoire/fichiers)
  • votre installation ImageMagick peut effectivement identifier les fichiers PDF (je l'ai essayé sur ma machine locale (ImageMagick 6.1.7) en utilisant la ligne de commande et la messagerie instantanée a échoué avec cette erreur: identify: Postscript delegate failed ...) - probablement besoin Imagemagick Ghostscript travailler avec des fichiers PDF