如何将变量从php页面传递到命令行

时间:2012-02-22 00:34:24

标签: php linux command-line wkhtmltopdf

我目前正在使用以下两个命令来生成从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命令行中键入它。用户将使用Web界面选择客户端,日期开始和日期结束,然后单击“打印报告”。这会将变量发送到命令行并运行上面显示的两行。

我知道如何制作表单,但我无法弄清楚如何将变量传递给命令行并运行这两行。如果有人能提供帮助,我肯定很简单吗?

非常感谢

3 个答案:

答案 0 :(得分:0)

http://php.net/manual/en/function.system.php可满足您的需求:)

它甚至为您获取输出(如果出现错误消息等,非常有用)

运行多个命令使用&&例如:     system(“ls&& exit”);

答案 1 :(得分:0)

//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没问题

答案 2 :(得分:0)

我有同样的问题,当我尝试从命令行运行它时它就像一个魅力,但是,如果我尝试通过浏览器执行它不起作用。

我甚至在命令行中测试了test.php文件中的同一段代码。 在命令行中,它生成pdf文件,但在浏览器中则不生成。

您已将问题分配为已回答。我看不出正确的答案在哪里......

也许你在这个问题中解决了同样的问题exec() problem with long command in PHP

看看编辑3