以前一直在找PHP網(wǎng)站截屏實(shí)現(xiàn)方法的代碼,現(xiàn)在終于找到了。把他搬過(guò)來(lái)。自己也沒(méi)試過(guò),用的時(shí)候在搗鼓搗鼓吧。
其他方法:1、http:///screenshot/ 這里有接口,可自己調(diào)用
2、php利用CutyCapt實(shí)現(xiàn)網(wǎng)頁(yè)高清截圖
->http:///tech/php/273577.shtml
phantomjs和slimerjs,兩款都是服務(wù)器端的js,簡(jiǎn)單說(shuō)來(lái),都是封裝了瀏覽器解析引擎,不同是phantomjs封裝的
webkti,slimerjs封裝的是Gecko(firefox)。 權(quán)衡利弊,決定研究下phantomjs,于是就用phantomjs實(shí)現(xiàn)了網(wǎng)
站快照生成。phantomjs的項(xiàng)目地址是:http:///
代碼涉及兩個(gè)部分,一個(gè)是設(shè)計(jì)業(yè)務(wù)的index.php,另一個(gè)是生成快照的js腳本snapshot.js。代碼比較簡(jiǎn)單,僅僅是實(shí)現(xiàn)了功能,沒(méi)有做過(guò)多的修飾。代碼分別如下所示:
<?php
if
(isset($_GET['url']))
{
set_time_limit(0);
$url = trim($_GET['url']);
$filePath = "./cache/".md5($url).'.png';
if (is_file($filePath))
{
exit($filePath);
}
$command = "phantomjs/bin/phantomjs snapshot.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>快照生成</title>
<script
src="http://code./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('正在生成網(wǎng)站快照,請(qǐng)耐心等待...');
return false;
}
$(this).data('generate', true); |