最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 科技 - 知识百科 - 正文

PHP如何实现网页截图

来源:动视网 责编:小采 时间:2020-11-02 18:28:22
文档

PHP如何实现网页截图

PHP如何实现网页截图:PHP实现网页截图的方法:首先下载CutyCapt;然后解压tar包;最后使用代码public function index(){echo '<pre>';echo date('Y-m-d H:m:s')...}实现截图即可。推荐:《PHP视频教程》如果需要将一个网址的内容做成视图图
推荐度:
导读PHP如何实现网页截图:PHP实现网页截图的方法:首先下载CutyCapt;然后解压tar包;最后使用代码public function index(){echo '<pre>';echo date('Y-m-d H:m:s')...}实现截图即可。推荐:《PHP视频教程》如果需要将一个网址的内容做成视图图


PHP实现网页截图的方法:首先下载CutyCapt;然后解压tar包;最后使用代码“public function index(){echo '<pre>';echo date('Y-m-d H:m:s')...}”实现截图即可。

推荐:《PHP视频教程》

如果需要将一个网址的内容做成视图图片输出,则需要辅助工具CutyCapt来实现这一需求

Windows系统

  • 下载CutyCapt
    CutyCapt下载地址:http://sourceforge.net/projects/cutycapt/files/cutycapt/
  • 解压tar包,看到CutyCapt.exe 不需要再点击安装
  • 代码实现(时间需要20多秒):
  •  public function index()
     {
     echo '<pre>';
     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.

    处理
    1、开始–运行–输入cmd
    2、输入 cd %windir%system32 (进入windows安装目录的system32文件夹)
    3、输入 Regsvr32 Msxml3.dll
    4、缘由链接

    Linux系统

    CutyCapt是一个截图工具

    官方网站 http://cutycapt.sourceforge.net/
    我主要的目的是解决用php保存网页为图片,废话不多少开始安装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)

    解决方法

    yum install mesa-dri-drivers

    问题

    1)截图时候有乱码
    2) 执行速度慢
    3)截取百度和小松博客,发现按钮上的文字没有显示,应该也是乱码导致的

    PS.中文乱码问题

    将windows下的中文字体上传至/usr/share/fonts目录,执行下命令fc-cache即可

    测试截图

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

    文档

    PHP如何实现网页截图

    PHP如何实现网页截图:PHP实现网页截图的方法:首先下载CutyCapt;然后解压tar包;最后使用代码public function index(){echo '<pre>';echo date('Y-m-d H:m:s')...}实现截图即可。推荐:《PHP视频教程》如果需要将一个网址的内容做成视图图
    推荐度:
    标签: 截图 php 实现
    • 热门焦点

    最新推荐

    猜你喜欢

    热门推荐

    专题
    Top