PHP система возвращает 4 - PullRequest
       4

PHP система возвращает 4

1 голос
/ 14 марта 2010

Я хочу преобразовать PDF-файл в изображение с помощью PHP, но я не могу заставить команду работать. PHP возвращает 4. Я понятия не имею, что это может быть.

Я использую следующий код:

$tmp = system("convert -version", $value); 
var_dump($value);

У кого-то есть идея?

Ответы [ 4 ]

2 голосов
/ 14 марта 2010

попробуй

  exec("convert -version 2>&1", $out, $ret);
  print_r($out);

он должен сказать вам, что не так

1 голос
/ 14 марта 2010

попробуйте использовать некоторые другие системные функции в PHP, чтобы получить более подробный вывод.

exec("convert -version", $output, $value);
print_r($output);

Функция exec , приведенная выше, выдаст вам весь вывод команды в параметре $ output в виде массива.

Статус возврата (который будет храниться в параметре $ value в вызове exec выше или в вызове system в вашем исходном коде) дает вам значение возврата выполненного команда оболочки.

В общем случае для успеха это будет ноль, причем ненулевые целочисленные возвращаемые значения указывают на различные виды ошибок. Таким образом, кажется, что с командой есть что-то не так (возможно, -version не распознается: часто вам нужен двойной дефис перед опциями командной строки длинной руки).

Кстати, вы также можете обнаружить, что функция passthru больше соответствует вашим потребностям. Если ваша программа преобразования генерирует двоичные данные изображения, соответствующие преобразованному PDF, вы можете использовать passthru для отправки этих данных изображения непосредственно в браузер (после установки соответствующих заголовков, конечно)

1 голос
/ 14 марта 2010

Похоже, флаг -version сообщает программе конвертирования (похоже на imagemagick), что она отвечает основным номером версии этой программы. Похоже, он работает правильно. Вы, вероятно, должны передать ему правильные флаги для правильной работы. Я предлагаю прочитать документацию, чтобы узнать, какие флаги необходимы для конвертации PDF-файлов.

0 голосов
/ 15 марта 2010

эээ ... ты не ошибаешься? (Я хотел бы изменить дамп $ tmp, а не $ value.)

Я думаю, что код должен читать:

$tmp = system("convert -version", $value); 
var_dump($tmp);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...