PHP實作網頁截圖的方法:先下載CutyCapt;然後解壓縮tar包;最後使用程式碼「public function index(){echo 'e03b848252eb9375d56be284e690e873';echo date('Y-m-d H:m:s ')...}”實現截圖即可。
推薦:《PHP影片教學》
如果需要將一個網址的內容做成視圖圖片輸出,則需要輔助工具
CutyCapt
來實現這個需求
CutyCapt.exe
不需要再點選安裝public function index() { echo '<pre class="brush:php;toolbar:false">'; echo date('Y-m-d H:m:s').'<br>'; $_GET['url'] = 'https://www.aliyun.com/jiaocheng/970387.html'; $url=$_GET["url"]; $imgName = rand(10000,99999); $out = 'D:/game/'.$imgName.'.png'; //输出图片地址 $path = 'D:/game/CutyCapt.exe'; //工具存储地址 $cmd = "$path --url=$url --out=$out"; echo $cmd.'<br>'; system($cmd, $em); if(!empty($em)){ echo '成功了呢'; }; echo date('Y-m-d H:m:s').'<br>'; }
#注意
(如果直接命令列執行$cmd報錯):
QIODevice::read: maxSize argument exceeds QByteArray size limit terminate called after throwing an instance of 'std::bad_alloc' what(): std::bad_alloc This application has requested the Runtime to terminate it in an unusual way. Please contact the application's support team for more information.
處理
:
1、開始–運行–輸入cmd
2、輸入cd %windir%\system32 (進入windows安裝目錄的system32資料夾)
3、輸入Regsvr32 Msxml3.dll
4、緣由連結
CutyCapt是一個截圖工具
官方網站http://cutycapt.sourceforge.net /
我主要的目的是解決用php儲存網頁為圖片,廢話不多少開始安裝CutyCapt
yum install epel-release #依赖安装 yum install Xvfbyum install xorg-x11-fonts*yum install qtwebkit-devel qt-devel #中文字体 yum install fonts-chinese yum install CutyCapt #测试使用 xvfb-run --server-args="-screen 0, 1920x1080x24" CutyCapt --url=http://www.phpsong.com --out=phpsong.jpg 如果提示错误libEGL warning: DRI2: failed to open swrast (search paths /usr/lib64/dri)
解決方法
yum install mesa-dri-drivers
問題
1)截圖時候有亂碼
2) 執行速度慢
3)截取百度和小松博客,發現按鈕上的文字沒有顯示,應該也是亂碼導致的
PS.中文亂碼問題
#將windows下的中文字體上傳至/usr/share/fonts目錄,執行下指令fc-cache即可
測試截圖
xvfb-run --server-args="-screen 0, 1920x1080x24" CutyCapt --url=http://www.phpsong.com --out=1.jpg xvfb-run --server-args="-screen 0, 1920x1080x24" CutyCapt --url=http://www.baidu.com --out=2.jpg xvfb-run --server-args="-screen 0, 1920x1080x24" CutyCapt --url=http://www.163.com --out=3.jpg xvfb-run --server-args="-screen 0, 1920x1080x24" CutyCapt --url=http://www.sina.com.cn --out=4.jpg
範例
<?php /* 网页截图功能,必须安装IE+CutyCapt url:要截图的网页 out:图片保存路径 path:CutyCapt路径 cmd:CutyCapt执行命令 比如:http://你php路径.php?url=http://www.111cn.net */ $url=$_GET["url"]; $imgname=str_replace('http://','',$url); $imgname=str_replace('https://','',$imgname); $imgname=str_replace('.','-',$imgname); $out = 'D:/webroot/test/'.$imgname.'.png'; $path = 'D:/webserver/CutyCapt.exe'; $cmd = "$path --url=$url --out=$out"; echo $cmd; system($cmd); ?>
以上是PHP如何實作網頁截圖的詳細內容。更多資訊請關注PHP中文網其他相關文章!