PHP 将页面url网址转换成图片、用于抓取截图、保存当前页面快照

时间: 作者: 点击量:
PHP 将页面url网址转换成图片、用于抓取截图、保存当前页面快照

1、phantomjs:
教程:
http://www.oicqzone.com/pc/2014091319762.html

实例:
<?php  
    if (isset($_GET['url']))  
    {  
        set_time_limit(0);  
  
        $url = trim($_GET['url']);  
        $filePath = md5($url).'.png';  
        if (is_file($filePath))  
        {  
            exit($filePath);  
        }  
  
        $command = "phantomjs snap.js {$url} {$filePath}";  
        @exec($command);  
  
        exit($filePath);  
    }  
?>  
  
<!DOCTYPE html>  
<html>  
<head>  
<meta charset="utf-8" />  
<meta name="viewport" content="width=device-width, initial-scale=1.0" />  
<meta name="keywords" content="" />  
<meta name="description" content="" />  
<title>快照生成-www.oicqzone.com</title>  
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>  
<style>  
* {  
    margin: 0;  
    padding: 0;  
}  
  
form {  
    padding: 20px;  
}  
  
div {  
    margin: 20px 0 0;  
}  
  
input {  
    width: 200px;  
    padding: 4px 2px;  
}  
  
#placeholder {  
    display: none;  
}  
</style>  
</head>  
  
<body>  
    <form action="" id="form">  
        <input type="text" id="url" />  
        <button type="submit">生成快照</button>  
  
        <div>  
            <img src="" alt="" id="placeholder" />  
        </div>  
    </form>  
    <script>  
    $(function(){  
        $('#form').submit(function(){  
            if (typeof($(this).data('generate')) !== 'undefined' && $(this).data('generate') === true)  
            {  
                alert('正在生成网站快照,请耐心等待...');  
                return false;  
            }  
  
            $(this).data('generate', true);  
            $('button').text('正在生成快照...').attr('disabled', true);  
  
            $.ajax({  
                type: 'GET',  
                url: '?',  
                data: 'url=' + $('#url').val(),  
                success: function(data){  
                    $('#placeholder').attr('src', data).show();  
                    $('#form').data('generate', false);  
                    $('button').text('生成快照').attr('disabled', false);  
                }  
            });  
  
            return false;  
        });  
    });  
    </script>  
</body>  
</html>  

以下保存为js文件,放在phantomjs同一目录下面。

var page = require('webpage').create(); 
var args = require('system').args; 
 
var url = args[1]; 
var filename = args[2]; 
 
page.open(url, function () { 
    page.render(filename); 
    phantom.exit(); 
}); 

 
我测试了下,大部分网站都能顺利截图,效果还不错,但是有一些登录以后才能访问的页面好像截取的只能是登录页,还有一些不能截取成功,一些图片加载的好像也截取不成功。


2、html2jpg  :https://github.com/summerbabybiu/html2jpg

3、html2canvas(JS):http://html2canvas.hertzen.com/

4、html-to-jpeg-php(PHP):https://github.com/erayakartuna/html-to-jpeg-php

5、php-url:https://github.com/Lablnet/PHP-URL

6
、puphpeteer:https://github.com/nesk/puphpeteer

7
、在线截去网址:http://www.kjson.com/tools/screenshot

通过PHP执行PhantomJS命令

https://github.com/jonnnnyw/php-phantomjs

上一篇:docsify - 生成文档网站简单使用

下一篇:php利用CutyCapt抓取网页高清图片快照

注册体验: