Ghostscript exec: PHP против Python

Я пытаюсь выполнить простую команду Ghostscript, чтобы получить количество страниц PDF.
Вот PHP cmd:

$pages = 'sudo gs -q -dNODISPLAY -c "(' . $input . ') (r) file runpdfbegin pdfpagecount = quit"';

Пробовал exec (), system (), shell_exec () и passthru () — никто не возвращает стандартный вывод.

Для с&г, я попробовал Python:

>>> import os
>>> os.system('sudo gs -q -dNODISPLAY -c "(/Users/me/Downloads/multi-page.pdf) (r) file runpdfbegin pdfpagecount = quit"')

Получил выход 32.

Основная цель — заставить это работать в PHP — чего мне не хватает?

-1

Решение

Это была функция того, что исполняемый файл не был найден без указания PHP.
Я пошел окольным путем:

Скрипт Python:

>>> #!/usr/bin/python
>>> import sys
>>> import os
>>> input_file = sys.argv[1].replace("2>&1", "")
>>> num_pages = os.system('gs -q -dNODISPLAY -c "(' + input_file + ') (r) file runpdfbegin pdfpagecount = quit"')

>>> print num_pages

PHP-скрипт, вызывающий Python-скрипт:

$cmd_path = base_path('backend/misc/get_pdf_pages.py');
$pages_cmd = "python -u {$cmd_path} " . escapeshellarg($input) . " 2>&1";
exec($pages_cmd, $ret);
echo $ret[0];

Что привело к: «sh: gs: команда не найдена»

Благодаря этому совету я изменил gs на / usr / local / bin / gs, который работал в Python, пробовал то же самое в PHP, работал в PHP. Извлеченный урок — используйте абсолютные пути к двоичным файлам.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]