在網頁開發中,常常會需要將 HTML 頁面轉換成圖片,用於產生驗證碼、郵件截圖等功能。而 PHP 作為一種非常流行的伺服器腳本語言,也能夠實現 HTML 到圖片的轉換。本文將介紹如何使用 PHP 將 HTML 頁面轉換成圖片。
在介紹具體實作前,先簡單了解下 HTML 到圖片的原理。常見的方式是使用第三方函式庫將 HTML 頁面渲染成圖片,然後將圖片輸出到瀏覽器或儲存為檔案。
PHP 原生不支援將 HTML 轉換成圖片,需要依賴第三方擴充功能。其中比較受歡迎的有 wkhtmltoimage
、dompdf
、phantomjs
等。
以 wkhtmltoimage
為例,需要在伺服器上先安裝 wkhtmltox
函式庫。
sudo apt-get update sudo apt-get install wkhtmltopdf
然後安裝 PHP 擴充功能 php-wkhtmltox
。
sudo apt-get install php-wkhtmltox
wkhtmltoimage
擴充功能安裝好wkhtmltoimage
擴充功能後,就可以使用下列程式碼將HTML 頁面轉換成圖片。
<?php $command = 'wkhtmltoimage http://www.baidu.com ./baidu.jpg'; $result = shell_exec($command);
上述程式碼中,wkhtmltoimage
指令將http://www.baidu.com
頁面渲染成圖片,並儲存為./baidu. jpg
檔案。
除了從網頁位址轉換圖片外,也可以將本機HTML 檔案轉換成圖片:
<?php $command = 'wkhtmltoimage ./local.html ./local.jpg'; $result = shell_exec($command);
dompdf
擴充功能dompdf
是一個將HTML 轉換為PDF 的PHP 擴展,它也能夠將HTML 轉換成圖片。
安裝 dompdf
擴充功能。
composer require dompdf/dompdf
使用下列程式碼將 HTML 頁面轉換成圖片。
<?php use Dompdf\Dompdf; $html = file_get_contents('http://www.baidu.com'); $dompdf = new Dompdf(); $dompdf->loadHtml($html); $dompdf->render(); $file = './baidu.png'; file_put_contents($file, $dompdf->output());
在上述程式碼中,使用 file_get_contents
取得頁面 HTML 內容,然後使用 Dompdf
在伺服器端渲染成圖片,並將其儲存到本機。
phantomjs
擴充功能與dompdf
類似,phantomjs
也是能夠將HTML 頁面渲染成圖片的工具。安裝 phantomjs
函式庫。
sudo apt-get install phantomjs
然後使用以下程式碼將 HTML 頁面轉換成圖片。
<?php $html = file_get_contents('http://www.baidu.com'); $command = 'phantomjs rasterize.js ' . escapeshellarg($html) . ' ./baidu.png 800px*600px'; $result = shell_exec($command);
在上述程式碼中,phantomjs
指令使用了 rasterize.js
腳本來完成頁面渲染。其中,第一個參數是要渲染的 HTML 內容,第二個參數為輸出文件,第三個參數為輸出圖片的尺寸。
本文介紹如何使用 PHP 將 HTML 頁面轉換成圖片。我們可以使用 wkhtmltoimage
、dompdf
或 phantomjs
等擴充功能來實現這項功能。使用不同的擴展,也需要注意其依賴環境的安裝和相關庫的使用。
以上是如何使用PHP將HTML頁面轉換成圖片的詳細內容。更多資訊請關注PHP中文網其他相關文章!