2012-02-20 64 views
1

我想使用wkhtmltopdf將網頁轉換爲pdf。我有一個靜態模板測試,這句法完美的作品使用Linux命令行獲取變量調用PHP頁面

wkhtmltopdf my.html my.pdf 

的問題是實際的頁面是依靠3個GET變量表動態PHP頁面。

一個例子是http://mypage.php?clientid=SJC&datestart=201201&dateend=201202

我不能直接這樣做,像這樣:

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

有人建議我需要從與變量的命令行調用PHP第一個獲得該組變量的HTML源代碼,然後轉換使用wkhtmltopdf

我該如何做到這一點?有人可以使用上面的URL作爲例子提供過程嗎?

+1

您可以直接執行此操作。你只需要在命令行中轉義url。把它放在引號或其他東西。無論如何,這不是一個SO問題,這屬於serverfault。 – 2012-02-20 14:57:38

+1

http://serverfault.com/ – 2012-02-20 14:58:25

+0

誰給了一個廢話它張貼的地方?我從來不會在serverfault上找到這個,我需要知道這些信息。克服自己。 – Anthony 2012-12-25 14:57:13

回答

1

在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" 

將結果輸出到特定文件ex。 myfile.html

注:

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

雙引號似乎解決了符號編碼的問題。

+0

'主機'參數是錯過了。它應該看起來像這樣:'wget http://localhost/mypage.php?clientid = SJC&datestart = 201201&dateend = 201202' – Minras 2012-02-20 15:14:12

+0

使用wget -O方法似乎只能識別第一個查詢。我得到2個未定義的索引。日期開始和日期結束。當我在瀏覽器中輸入完全相同的地址時,它會完美加載。有什麼建議麼? – 2012-02-20 16:44:41

+0

&符號「&」必須在url中編碼爲「&」。也是一個好主意,雙引號URL'wget -O myfile.html「http://localhost/mypage.php?clientid = SJC & datestart = 201201 & dateend = 201202」' – Daniel 2012-02-20 17:37:32

2

最簡潔的方法是使用$_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' 
+0

好感謝您的答覆:) 所以此刻我 代碼$ sClientid = $ _ GET [「的clientid」] 我可以替換成這樣? $ sCntintid = $ _ SERVER ['argv'] [1]? 如果是的話,我需要把什麼放入命令行生成一個使用上面3個變量填充的HTML頁面? 如果我可以得到的HTML頁面很容易轉換爲pdf 非常感謝 – 2012-02-20 16:25:38