【问题标题】:Calling a PHP page with GET variables from the Linux command line从 Linux 命令行调用带有 GET 变量的 PHP 页面
【发布时间】:2012-03-10 21:52:05
【问题描述】:

我想使用wkhtmltopdf 将网页转换为PDF 文件。我有一个静态模板的测试,这个语法完美地工作:

wkhtmltopdf my.html my.pdf

问题是实际页面是一个动态 PHP 页面,其中的表格依赖于三个 HTML GET 变量。

一个例子是:

http://mypage.php?clientid=SJC&datestart=201201&dateend=201202

我不能像这样直接这样做:

wkhtmltopdf mypage.php?clientid=SJC&datestart=201201&dateend=201202 my.pdf

有人建议我需要先使用变量从命令行调用 PHP,以获取该组变量的 HTML 源代码,然后使用 wkhtmltopdf 进行转换。

我该怎么做?以上述网址为例,流程是怎样的?

【问题讨论】:

  • 你可以直接这样做。您只需要在命令行中转义 url。把它放在引号或其他东西中。无论如何,这不是一个 SO 问题,这属于服务器故障。
  • 谁在张贴的地方废话?我永远不会在 serverfault 上找到这个,我需要知道这些信息。克服自己。

标签: php linux wkhtmltopdf suse


【解决方案1】:

最简洁的方法是使用 $_SERVER['argv'] 而不是 GET 变量。

但是,如果您必须使用 GET 变量,您可以在自定义脚本中设置它们:

$_REQUEST['var1'] = $_SERVER['argv'][0];

然后require() PHP 脚本本身。

另一种方法是设置环境变量QUERY_STRINGREQUEST_METHOD

export REQUEST_METHOD=GET
exprt QUERY_STRING='var1=blub&var2=blah'

【讨论】:

  • 好的,谢谢您的回复 :) 所以目前我有代码 $sClientid=$_GET['clientid'] 我可以用这个替换它吗? $sClientid=$_SERVER['argv'][1] ?如果是这样,我需要在命令行中输入什么来生成使用上述 3 个变量填充的 html 页面?如果我能得到 html 页面,它很容易转换为 pdf 非常感谢
【解决方案2】:

在 Linux 中,您可以使用 wget 命令从 URL 获取结果 HTML 文件:

wget "http://localhost/mypage.php?clientid=SJC&datestart=201201&dateend=201202"

或者

wget -O myfile.html "http://localhost/mypage.php?clientid=SJC&datestart=201201&dateend=201202"

将结果输出到特定文件,例如,myfile.html

注意:

wget wget -O myfile.html "http://localhost/mypage.php?clientid=SJC&datestart=201201&dateend=201202"

双引号似乎解决了 & 编码问题。

【讨论】:

  • 'host' 参数丢失。它应该看起来像这样:wget http://localhost/mypage.php?clientid=SJC&datestart=201201&dateend=201202
  • 使用 wget -O 方法似乎只能识别第一个查询。我得到 2 个未定义的索引。日期开始和日期结束。当我在浏览器中输入完全相同的地址时,它会完美加载。有什么建议吗?
  • 与号“&”必须编码为“&”在网址中。双引号 URL wget -O myfile.html "http://localhost/mypage.php?clientid=SJC&datestart=201201&dateend=201202" 也是一个好主意
  • 为什么要加倍“wget”? - wget wget -O myfile.html ...
  • 将“&”编码为“&”可能不起作用(该参数将被忽略)。相反,将 "&" 编码为 "%3F" (percent-encoding) 可能会起作用。可以验证吗?
猜你喜欢
  • 2015-01-24
  • 2015-12-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-30
  • 2016-09-29
相关资源
最近更新 更多