2009-11-28 4 views
1

Я довольно новичок в использовании командной строки и php. При этом я пытался выяснить, как использовать ImageMagick с помощью функции exec(). У меня есть это в настоящее время,Imagemagick convert pdf to png

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

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

Что возвращает «нет». Я считаю, что мне не хватает чего-то о том, как выполнить преобразование из правильного каталога. Правильно ли настроена моя команда? (Мне дали путь к ImageMagick со своего веб-хоста, Lunarpages).

Я прочитал некоторые другие вопросы, касающиеся ImageMagick, но я не нашел много, чтобы помочь мне настроить мою команду.

Спасибо за любую помощь,
Леви

ответ

4

Что ваша команда в настоящее время пытается сделать, это выполнить программу с именем/USR/местные/Библиотека/ImageMagick, который я предполагаю, не то, что вы собирались. Если это путь к ImageMagick и вы хотите использовать утилиту новообращенных вам нужно изменить вашу команду к следующему:

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

В этот момент он должен работать без каких-либо проблем! Возможно, вам захочется еще больше углубиться в то, что команда конвертирования может сделать для вас!

+0

Я попытался это, и я до сих пор получаю ошибку, я попытался добавить/удалить косые черты для путей к именам файлов, таким как «images/a.pdf», в «/images/a.pdf». Это не сработало для меня, но думаете ли вы, что пути можно прочитать неправильно? – Levi

+1

Попробуйте добавить диагностический вывод PHP 'echo getcwd();' command, чтобы показать текущий рабочий каталог. Возможно, когда 'exec()' запускает рабочий каталог не так, как ожидалось (чуть выше 'изображений'). – wallyk

+0

Я действительно в правильном месте, чуть выше изображений (в/gallery /). Однако, если я чуть выше изображений, exec() попытается запустить из/gallery/usr/local/lib/ImageMagick/convert? Или будет exec() работать из корня? – Levi

0

использовать ехес() правильный путь, как ваш Exec возвращает строку по умолчанию, и результаты выполнения передается обратно через один из его параметров, например:

$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); 
} 

см http://php.net/manual/en/function.exec.php