Maison > développement back-end > Problème PHP > Comment implémenter des captures d'écran de pages Web en PHP

Comment implémenter des captures d'écran de pages Web en PHP

藏色散人
Libérer: 2023-03-04 13:46:01
original
5529 Les gens l'ont consulté

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 &#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;;

    }
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 &#39;std::bad_alloc&#39; what(): std::bad_alloc This application has requested the Runtime to terminate it in an unusual way. Please contact the application&#39;s support team for more information.

处理 :
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

CutyCapt est un outil de capture d'écran

Site officiel http://cutycapt.sourceforge.net/

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)
Copier après la connexion

Solution

yum install mesa-dri-drivers
Copier après la connexion

Problème

1) Il y a des caractères tronqués lors de la prise de captures d'écran

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

Téléchargez les polices chinoises sous Windows sur. le répertoire /usr/share/fonts, et exécutez la commande fc-cache

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
Copier après la connexion

Exemple

<?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);
?>
Copier après la connexion

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Recommandations populaires
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal