как передать переменные со страницы php в командную строку - PullRequest
0 голосов
/ 22 февраля 2012

В настоящее время я использую следующие две команды для генерации клиентских операторов, заполненных из таблиц mysql.Есть три переменные, client_id, date_start.date_end

wget -O mypage.html "http://mypage.php?client_id=var1&date_start=var2&date_end=var3"

wkhtmltopdf-i386 --margin-left 5mm --margin-right 5mm mypage.html mypage.pdf

Это прекрасно работает и дает полезные заявления.Теперь я хотел бы реализовать веб-страницу, используя три раскрывающихся меню для выбора каждой переменной, а не вводить ее непосредственно в командную строку Linux.Пользователь выбирает клиента, дату начала и дату окончания, используя веб-интерфейс, затем нажимает «Печать отчета».Это отправит переменные в командную строку и запустит две строки, показанные выше.

Я знаю, как создавать формы, но не могу понять, как передать переменные в командную строку и запустить эти 2 строки.Я уверен, что это просто, если кто-нибудь может помочь?

Большое спасибо

Ответы [ 3 ]

0 голосов
/ 22 февраля 2012
//assumes, you have extracted $clientid, $startdate, $enddate from your $_REQUEST and validated them

$command="wget -O mypage.html \"http://mypage.php?client_id=$clientid&date_start=$startdate2&date_end=$enddate\"";
exec($command, $output, $status);
if ($status!=0) die("wget failed");


$command="htmltopdf-i386 --margin-left 5mm --margin-right 5mm mypage.html mypage";
exec($command, $output, $status);
if ($status!=0) die("htmltopdf failed");

Подводные камни: Вы должны использовать /path/to/wget и /path/to/htmltopdf-i386, чтобы убедиться, что ваш PATH в порядке

0 голосов
/ 23 февраля 2012

У меня та же проблема, когда я пытаюсь запустить его из командной строки, он работает как чудо, но, если я пытаюсь запустить его через браузер, он не работает.

Я даже тестировал с помощью командной строки тот же кусок кода в файле test.php. В командной строке генерирует PDF-файл, а в браузере - нет.

Вы задали свой вопрос в качестве ответа. Я не вижу, где правильный ответ ...

Возможно, в этом вопросе решена та же проблема exec () проблема с длинной командой в PHP

Посмотрите на Редактировать 3

0 голосов
/ 22 февраля 2012

http://php.net/manual/en/function.system.php - это ответ на ваши вопросы:)

Он даже получает вывод для вас (в случае сообщений об ошибках и т. Д., Очень полезно)

для запуска нескольких команд используйте && например: system ("ls && exit");

...