1
「在內存中」,我的意思是屏幕截圖不會寫入文件。在PHP中,是否可以在內存中截取網頁截圖?
要求是生成將存儲在數據庫中的網頁的縮略圖。我知道不建議在數據庫中保存圖像,但我們可能沒有在我們的服務器上寫入權限,所以我們正在探索此選項。
如果可能,它是如何完成的?
「在內存中」,我的意思是屏幕截圖不會寫入文件。在PHP中,是否可以在內存中截取網頁截圖?
要求是生成將存儲在數據庫中的網頁的縮略圖。我知道不建議在數據庫中保存圖像,但我們可能沒有在我們的服務器上寫入權限,所以我們正在探索此選項。
如果可能,它是如何完成的?
這將需要一個用PHP編寫的網頁渲染器,據我所知,沒有這樣做的庫。然而,有幾個命令行工具可以做到這一點(CutyCapt就是一個例子),但他們將寫入文件。
至於寫入權限,您可能可以寫入/tmp
,然後通過PHP進行傳遞。
我在開發過程中使用CutyCapt。我剛剛介紹了部署到生產時可能遇到的問題。我會看看'/ tmp'是否可用。謝謝! – 2010-11-03 05:11:37
一些注意事項:1,存儲到數據庫並不意味着它沒有寫入文件。這只是表示它存儲在數據庫的文件系統中,可能在磁盤上,而不是標準文件系統中。 2,你是否已經有截圖,或者你也在問如何生成它們?對於PHP來說這不太可能,因爲PHP不是HTML/CSS渲染器。您通常需要一個瀏覽器和一個顯示器(至少一個虛擬X/VNC顯示器)來創建屏幕截圖。 – JAL 2010-11-03 04:13:01
@Alex JL:你真的不需要顯示器來生成屏幕截圖。有些工具會直接渲染圖像,畢竟,即使瀏覽器需要在顯示內容之前在內存中生成圖像。 – casablanca 2010-11-03 04:18:03
@casablanca這很好,我查看了各種webkit渲染器,但是最後我檢查了它們都顯得很醜。我必須查看你推薦的那些。我剛剛在Xvfb上啓動了一個真正的瀏覽器,獲得了最好的運氣。 – JAL 2010-11-03 04:23:49