Comment implémenter des captures d'écran de pages Web en PHP : téléchargez d'abord CutyCapt ; puis décompressez le package tar ; enfin utilisez le code " public function index(){echo '
';echo date('Y-m-d H :m:s ')...}" Prenez simplement une capture d'écran. </p></blockquote> <p><img src="https://img.php.cn/upload/article/202008/15/2020081509330277584.jpg" alt="Comment implémenter des captures d'écran de pages Web en PHP" ></p> <p>Recommandé : "<a href="https://www.php.cn/course/list/29/type/2.html" target="_blank">Tutoriel vidéo PHP</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>Si vous devez afficher le contenu d'une URL sous forme d'image de vue, vous avez besoin d'un outil auxiliaire <code>CutyCapt</code> pour répondre à cette exigence </strong></p> </blockquote> <h2>Système Windows</h2> <ul> <li>Télécharger CutyCapt<br>Adresse de téléchargement de CutyCapt : http://sourceforge.net/projects/cutycapt/files/cutycapt/</li> <li>Décompressez le tar package, Voir <code>CutyCapt.exe</code> Pas besoin de cliquer pour installer </li> <li> Implémentation du code (cela prend plus de 20 secondes) : </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>'; }Copier après la connexion
注意
(si vous exécutez $cmd directement depuis la ligne de commande Rapport d'erreur) :
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.
CutyCapt est un outil de capture d'écran Site officiel http://cutycapt.sourceforge.net/
处理
:
1. Démarrer – Exécuter – entrez cmd
2. Entrez cd %windir%system32 (entrez le dossier system32 dans le répertoire d'installation de Windows)
3 Entrez Regsvr32 Msxml3.dll
4. >Système Linux
Mon objectif principal est d'utiliser php pour enregistrer des pages Web sous forme d'images. plus loin, commencez à installer 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)
Solution
yum install mesa-dri-drivers
2) Vitesse d'exécution lente
3) Les captures d'écran des blogs Baidu et Komatsu ont révélé que le texte sur le bouton ne s'affiche pas, cela devrait également être dû à des caractères tronqués
PS : problème de caractères chinois tronqués
Test de capture d'écran
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); ?>
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!