WkHtmlToPdf Передача переменных через shell_exec()

Вот пример моего скрипта

$clientid = $_POST['clientid']; 
$from_day = $_POST['stat_from_day'];
$from_month = $_POST['stat_from_month'];
$from_year = $_POST['stat_from_year'];
$to_day = $_POST['stat_to_day'];
$to_month = $_POST['stat_to_month'];
$to_year = $_POST['stat_to_year'];

$from_date_string = $from_day . ' ' . $from_month . ' ' . $from_year ; 
$to_date_string = $to_day . ' ' . $to_month . ' ' . $to_year ; 

$baseurl = "http://www.test.com/";
$part1 = "?Search=" . $clientid . " from_day=" . $from_day . " from_month=" . $from_month . " from_year=" . $from_year ;
$part2 = " to_day=" . $to_day . " to_month=" . $to_month . " to_year=" . $to_year ;

$time = mktime();
$formatted_time = date("d_M_Y", $time);

$command = "xvfb-run -a /usr/bin/wkhtmltopdf --ignore-load-errors";
$url = $baseurl . $part1 . $part2 ;

$html = file_get_contents($url);

$output_dir = '/var/www/stats/pdf/';
$output = $clientid . '_Search_Export_' . $formatted_time . rand(10000, 99999) . '.pdf';

$generate = shell_exec($command . ' ' . $url . ' ' . $output_dir . $output) ;

Проблема, с которой я столкнулся, связана с командой $, в основном, когда она запускает wkHTMLtoPDF, она запускает ее через командную строку, а бит &variable= вызывает ошибку сценария, как через командную строку, и это другая команда, мой вопрос: как мне это сделать? получить переменные, которые будут переданы правильно, чтобы сценарий, который затем отправляется, мог использовать переменные $_GET, которые мне нужны, чтобы сценарий работал?

Я немного поискал и нашел что-то вроде использования $argv1;

Замена $_GET, чтобы он работал из командной строки

Однако я не могу найти ссылку, которая точно соответствует моим потребностям.


person Clifford Yeti Mapp    schedule 19.08.2013    source источник


Ответы (2)


Измените это:

$url = $baseurl . $part1 . $part2 ;

К этому:

$url = "\" . $baseurl . $part1 . $part2 . "\";
person john avison    schedule 20.08.2013
comment
ОП может быть полезно объяснить, почему что-то не работает и как предлагаемое исправление меняет это поведение. - person dc5; 21.08.2013

На самом деле wkhtmltopdf принимает и передает данные POST на серверную страницу, которая печатается/экспортируется в pdf.

Все, что вам нужно, это --post fieldName value.

xvfb-run -a /usr/bin/wkhtmltopdf --ignore-load-errors --post username blablabla --post bla2 answer2

У вас может быть столько же в команде, чтобы передать столько параметров post, сколько вы хотите.

person Peter    schedule 05.12.2014