2009-11-28 8 views
1

Je suis plutôt nouveau à l'aide de la ligne de commande et PHP. Cela étant dit, j'ai essayé de comprendre comment utiliser ImageMagick avec la fonction exec(). J'ai ceci actuellement,Imagemagick convertir pdf en png

$command="/usr/local/lib/ImageMagick convert images/a.pdf images/a.png"; 

if(exec($command)){ 
    echo 'yes'; 
} 
else{ 
    echo 'no'; 
} 

Qui retourne «non». Je crois qu'il me manque quelque chose sur la façon d'exécuter convertir à partir du bon répertoire. Ma commande $ est-elle correctement configurée? (J'ai reçu le chemin d'ImageMagick de mon hébergeur, Lunarpages).

J'ai lu quelques-unes des autres questions concernant ImageMagick mais je n'ai pas trouvé grand-chose pour m'aider à configurer ma commande.

Merci pour toute aide,
Levi

Répondre

4

Ce que votre commande actuellement tente de faire est d'exécuter un programme named/usr/local/lib/ImageMagick que je suppose est pas ce que vous aviez l'intention. Si tel est le chemin vers ImageMagick et que vous voulez utiliser l'utilitaire de conversion que vous devez modifier votre commande à ce qui suit:

/usr/local/lib/ImageMagick/convert images/a.pdf images/a.png 

à quel point il devrait fonctionner sans aucun problème! Vous voudrez peut-être creuser plus loin dans ce que la commande de conversion peut faire pour vous!

+0

J'ai essayé ceci et je reçois toujours l'erreur, j'ai essayé d'ajouter/supprimer des barres obliques pour les chemins vers des noms de fichiers tels que 'images/a.pdf' à '/images/a.pdf'. Cela n'a pas fonctionné pour moi mais pensez-vous que les chemins pourraient être lus incorrectement? – Levi

+1

Essayez d'ajouter une commande de sortie PHP 'echo getcwd();' pour afficher le répertoire de travail actuel. Peut-être que quand exec() exécute le répertoire de travail n'est pas comme prévu (juste au-dessus de 'images'). – wallyk

+0

Je suis en effet au bon endroit, juste au-dessus des images (dans/gallery /). Cependant, si je suis juste au-dessus des images, exec() essaiera-t-il de lancer/gallery/usr/local/lib/ImageMagick/convert? Ou exec() travaillera à partir de la racine? – Levi

0

utiliser l'exec() la bonne façon que votre exec retourne une chaîne par défaut et les résultats d'exécution est renvoyé par l'un de ses paramètres en tant que tels:

$command="/usr/local/lib/ImageMagick/convert images/a.pdf images/a.png"; 

exec($command,$output,$result); 
if ($result == true){ 
    echo 'yes'; 
} 
else{ 
    echo 'no, here's what happened with command output'; 
    print_r($output); 
} 

se réfèrent à http://php.net/manual/en/function.exec.php

Questions connexes