以下是我的脚本
的示例$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 = bit导致脚本错误,如命令行&是另一个命令,我的问题是如何让变量正确传递,以便然后发送到的脚本能够使用我需要的$ _GET变量才能使脚本工作?
我已经做了一些查找,发现了一些使用$ argv 1的内容;
Replacing $_GET to make it work from command line
然而,我似乎找不到符合我需要的参考资料。
答案 0 :(得分:1)
改变这个:
$url = $baseurl . $part1 . $part2 ;
对此:
$url = "\" . $baseurl . $part1 . $part2 . "\";
答案 1 :(得分:1)
实际上,wkhtmltopdf接受并将POST数据传递到正在打印/导出为pdf的服务器端页面。
您需要的只是--post fieldName value
。
xvfb-run -a /usr/bin/wkhtmltopdf --ignore-load-errors --post username blablabla --post bla2 answer2
您可以在命令中使用尽可能多的发布参数