';echo date('Y-m-d H:m:s')를 사용하세요. ...}" 스크린샷을 찍으시면 됩니다."/> ';echo date('Y-m-d H:m:s')를 사용하세요. ...}" 스크린샷을 찍으시면 됩니다.">

 >  기사  >  백엔드 개발  >  PHP로 웹페이지 스크린샷을 찍는 방법

PHP로 웹페이지 스크린샷을 찍는 방법

藏色散人
藏色散人원래의
2020-08-15 09:33:375487검색

PHP에서 웹페이지 스크린샷을 찍는 방법: 먼저 CutyCapt를 다운로드한 다음 tar 패키지의 압축을 푼 다음 마지막으로 "public function index(){echo 'e03b848252eb9375d56be284e690e873';echo date('Y-m-d H:m:s)를 사용하세요. ').. .}' 그냥 스크린샷을 찍으세요.

PHP로 웹페이지 스크린샷을 찍는 방법

권장: "PHP Video Tutorial"

URL 내용을 보기 이미지로 출력해야 하는 경우 보조 도구 가 필요합니다. CutyCapt code>이 요구 사항을 충족하려면CutyCapt来实现这一需求

Windows系统

  • 下载CutyCapt
    CutyCapt下载地址:http://sourceforge.net/projects/cutycapt/files/cutycapt/
  • 解压tar包,看到CutyCapt.exe  不需要再点击安装
  • 代码实现(时间需要20多秒):
 public function index()
    {
        echo &#39;<pre class="brush:php;toolbar:false">&#39;;
        echo date(&#39;Y-m-d H:m:s&#39;).&#39;<br>&#39;;
        $_GET[&#39;url&#39;] = &#39;https://www.aliyun.com/jiaocheng/970387.html&#39;;
        $url=$_GET["url"];
        $imgName = rand(10000,99999);
        $out = &#39;D:/game/&#39;.$imgName.&#39;.png&#39;; //输出图片地址
        $path = &#39;D:/game/CutyCapt.exe&#39;;   //工具存储地址
        $cmd = "$path --url=$url --out=$out";
        echo $cmd.&#39;<br>&#39;;
        system($cmd, $em);
        if(!empty($em)){
            echo &#39;成功了呢&#39;;
        };
        echo date(&#39;Y-m-d H:m:s&#39;).&#39;<br>&#39;;

    }
  • 注意(如果直接命令行执行 $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.

处理

Windows 시스템

  • CutyCapt 다운로드
    CutyCapt 다운로드 주소: http://sourceforge.net/projects/cutycapt/files/cutycapt/ li>
  • tar 패키지의 압축을 풀고 CutyCapt.exe를 확인하세요. 설치를 위해 클릭할 필요가 없습니다.
  • 코드 구현(20초 이상 소요):
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)
  • 참고($cmd를 명령줄에서 직접 실행하면 오류가 보고됩니다):
QIODevice::read: maxSize 인수가 QByteArray 크기 제한을 초과했습니다. 'std::bad_alloc' 인스턴스를 던진 후 종료가 호출되었습니다. what(): std::bad_alloc 이 애플리케이션이 비정상적인 방식으로 종료하도록 런타임을 요청했습니다. 자세한 내용은 응용 프로그램 지원 팀에 문의하세요.

처리:

1. 시작 – 실행 – cmd를 입력합니다.
2. cd %windir%system32를 입력합니다(Windows의 system32 폴더에 입력). 설치 디렉터리)

3. Regsvr32 Msxml3.dll 입력

4. 이유 링크

Linux 시스템


CutyCapt는 스크린샷 도구입니다

공식 웹사이트 http://cutycapt.sourceforge.net/

저의 주요 목적은 PHP를 사용하는 것입니다. 웹 페이지를 사진으로 저장하려면 고민할 필요 없이 CutyCapt

yum install mesa-dri-drivers

Solution

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

Problems

1) 스크린샷을 찍을 때 문자가 깨져요

2) 느린 실행 속도3) Baidu 및 Komatsu 블로그를 가로채서 발견합니다. 버튼의 텍스트가 표시되지 않습니다. 이 문제는 문자 깨짐으로 인해 발생합니다🎜🎜PS. 중국어 문자 깨짐 문제 🎜🎜Windows의 중국어 글꼴을 /usr/share/fonts 디렉토리에 업로드하고 fc-cache🎜 명령을 실행하세요. 🎜테스트 스크린샷🎜
<?php
/* 
网页截图功能,必须安装IE+CutyCapt
url:要截图的网页
out:图片保存路径
path:CutyCapt路径
cmd:CutyCapt执行命令
比如:http://你php路径.php?url=http://www.111cn.net
*/
$url=$_GET["url"];
$imgname=str_replace(&#39;http://&#39;,&#39;&#39;,$url);
$imgname=str_replace(&#39;https://&#39;,&#39;&#39;,$imgname);
$imgname=str_replace(&#39;.&#39;,&#39;-&#39;,$imgname);
$out = &#39;D:/webroot/test/&#39;.$imgname.&#39;.png&#39;;
$path = &#39;D:/webserver/CutyCapt.exe&#39;;
$cmd = "$path --url=$url --out=$out";
echo $cmd;
system($cmd);
?>
🎜예🎜rrreee🎜

위 내용은 PHP로 웹페이지 스크린샷을 찍는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.