';echo date('Y-m-d H:m:s') ...}" Prenez simplement une capture d'écran."/> ';echo date('Y-m-d H:m:s') ...}" Prenez simplement une capture d'écran.">

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

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

藏色散人
藏色散人original
2020-08-15 09:33:375488parcourir

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 'e03b848252eb9375d56be284e690e873';echo date('Y-m-d H :m:s ')...}" Prenez simplement une capture d'écran.

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

Recommandé : "Tutoriel vidéo PHP"

Si vous devez afficher le contenu d'une URL sous forme d'image de vue, vous avez besoin d'un outil auxiliaire CutyCapt pour répondre à cette exigence

Système Windows

  • Télécharger CutyCapt
    Adresse de téléchargement de CutyCapt : http://sourceforge.net/projects/cutycapt/files/cutycapt/
  • Décompressez le tar package, Voir CutyCapt.exe Pas besoin de cliquer pour installer
  • Implémentation du code (cela prend plus de 20 secondes) :
 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;;

    }
  • 注意 (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.

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

Solution

yum install mesa-dri-drivers

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

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);
?>

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!

Déclaration:
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