Команда PDFtk не запускается из exec

Я переместил свой код с одного компьютера WAMP на другой, и код, который запускает pdftk, перестал работать. Я сравнил разрешения для pdftk.exe и они одинаковы на обеих машинах. Когда я запускаю ту же команду из командной строки, она работает. я добавить exec("whoami") к скрипту и пользователю то же самое на обоих компьютерах. Когда я запускаю что-то вроде exec('dir 2>&1', $out) он выполняется, так что я знаю, что exec работает в php.

Я создал простой файл php для тестирования, и он не работает.

<?php
$String = 'pdftk.exe > "c:\temp\temp.txt"';
exec("$String");
exec("pdftk.exe > \"c:\temp\temp.txt\"");
?>

Обе команды exec приводят к созданию 0-байтового файла.

если я бегу

pdftk.exe > "c:\temp\temp.txt"

из командной строки выводит файл pdftk.exe в файл temp.txt, как и ожидалось.

Кажется, это должно быть какой-то проблемой с разрешениями, но разрешения для исполняемого файла кажутся одинаковыми. Схожу с ума по этому поводу.

1

Решение

На мой взгляд, первая строка должна быть:

<?php
$String = 'pdftk.exe > "c:\temp\temp.txt"';
exec($String); //removed quotes
?>

А для второй строки, что если вы попробуете это?

<?php
exec('pdftk.exe > "c:\temp\temp.txt\"', $outputAndErrors, $returnValue);
var_dump($outputAndErrors);
?>

Или если вы удалите свой первый «>«?

<?php
exec('pdftk.exe "c:\temp\temp.txt\" 2>&1', $outputAndErrors, $returnValue);
var_dump($outputAndErrors);
?>

Вот некоторые тесты, которые могут вам помочь, подумал.

0

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

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

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector