PHP에서 웹페이지 스크린샷을 찍는 방법: 먼저 CutyCapt를 다운로드한 다음 tar 패키지의 압축을 푼 다음 마지막으로 "public function index(){echo '
';echo date('Y-m-d H:m:s)를 사용하세요. ').. .}' 그냥 스크린샷을 찍으세요. </p></blockquote> <p><img src="https://img.php.cn/upload/article/202008/15/2020081509330277584.jpg" alt="PHP로 웹페이지 스크린샷을 찍는 방법" ></p> <p>권장: "<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank">PHP Video Tutorial</a>"</p> <link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-963e387caa.css"> <p id="content_views" class="markdown_views prism-tomorrow-night-eighties"><!-- flowchart 箭头图标 勿删 --><svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path></svg></p> <blockquote><p><strong>URL 내용을 보기 이미지로 출력해야 하는 경우 보조 도구 <code>가 필요합니다. CutyCapt code>이 요구 사항을 충족하려면</code></strong><code>CutyCapt</code>来实现这一需求</p></blockquote> <h2>Windows系统</h2> <ul> <li>下载CutyCapt<br>CutyCapt下载地址:http://sourceforge.net/projects/cutycapt/files/cutycapt/</li> <li>解压tar包,看到<code>CutyCapt.exe</code> 不需要再点击安装</li> <li>代码实现(时间需要20多秒):</li> </ul><div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;"> 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.
处理
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 폴더에 입력). 설치 디렉터리)
4. 이유 링크
Linux 시스템
CutyCapt는 스크린샷 도구입니다
저의 주요 목적은 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('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 중국어 웹사이트의 기타 관련 기사를 참조하세요!