基于linnux+phantomjs實(shí)現(xiàn)生成圖片格式的網(wǎng)頁(yè)快照
安裝擴(kuò)展:
(1)下面是我在linux上的安裝過(guò)程,如果沒(méi)有安裝git請(qǐng)先yum install git
安裝casperjs
cd /
git clone git://github.com/n1k0/casperjs.git
cd casperjs
ln -sf /casperjs/bin/casperjs /usr/local/bin/casperjs //可以忽略 實(shí)際執(zhí)行中php是執(zhí)行 /casperjs/bin/casperjs
(2)安裝phantomjs,下載地址:http://phantomjs.org/download.html
下載后操作很簡(jiǎn)單,直接把解壓好的\bin\phantomjs移動(dòng)到\usr\local\bin\phantomjs就可以了。\
測(cè)試phantomjs --version 有結(jié)果不報(bào)錯(cuò),說(shuō)明安裝OK
(3)安裝字體
1. 首先獲得一套“微軟雅黑”字體庫(kù)(Google一下一大把),包含兩個(gè)文件msyh.ttf(普通)、msyhbd.ttf(加粗);
2. 在/usr/share/fonts目錄下建立一個(gè)子目錄,例如win,命令如下:
# mkdir /usr/share/fonts/win
3. 將msyh.ttf和msyhbd.ttf復(fù)制到該目錄下,例如這兩個(gè)文件放在/root/Desktop下,使用命令:
# cd /root/Desktop
# cp msyh.ttf msyhbd.ttf /usr/share/fonts/win/
4. 建立字體索引信息,更新字體緩存:
# cd /usr/share/fonts/win
# mkfontscale (如果提示 mkfontscale: command not found,需自行安裝 # yum install mkfontscale )
# mkfontdir
# fc-cache (如果提示 fc-cache: command not found,則需要安裝# yum install fontconfig )
至此,字體已經(jīng)安裝完畢!
<?php
if (isset($_GET['url']))
{
set_time_limit(0);
$url = trim($_GET['url']);
$filePath = md5($url).'.png';
if (is_file($filePath))
{
exit($filePath);
}
//如果不加這句就會(huì)報(bào)錯(cuò)“Fatal: [Errno 2] No such file or directory; did you install phantomjs?”,詳情參考http://mengkang.net/87.html
putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
$command = "phantomjs phantomjs.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.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('正在生成網(wǎng)站快照,請(qǐng)耐心等待...');
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>
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();
});
以上所述就是本文的全部?jī)?nèi)容了,希望大家能夠喜歡。
- 原生js生成圖片驗(yàn)證碼
- js通過(guò)canvas生成圖片縮略圖
- Java利用Phantomjs實(shí)現(xiàn)生成圖片的功能
- Node.JS用純JavaScript生成圖片或滑塊式驗(yàn)證碼功能
- 在JSP頁(yè)面中動(dòng)態(tài)生成圖片驗(yàn)證碼的方法實(shí)例
- js 將canvas生成圖片保存,或直接保存一張圖片的實(shí)現(xiàn)方法
- JSP開(kāi)發(fā)之生成圖片驗(yàn)證碼技術(shù)的詳解
- Nodejs中使用captchapng模塊生成圖片驗(yàn)證碼
- JavaScript之移動(dòng)端H5生成圖片解決方案講解
相關(guān)文章
Zend Framework教程之模型Model用法簡(jiǎn)單實(shí)例
這篇文章主要介紹了Zend Framework教程之模型Model用法,結(jié)合實(shí)例形式簡(jiǎn)單分析了Zend Framework中模型Model的原理,文件組織結(jié)構(gòu)及具體使用方法,需要的朋友可以參考下2016-03-03
thinkPHP通用控制器實(shí)現(xiàn)方法示例
這篇文章主要介紹了thinkPHP通用控制器實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了thinkPHP針對(duì)數(shù)據(jù)庫(kù)的基本CURD操作方法的封裝實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-11-11
Laravel基礎(chǔ)_關(guān)于view共享數(shù)據(jù)的示例講解
今天小編就為大家分享一篇Laravel基礎(chǔ)_關(guān)于view共享數(shù)據(jù)的示例講解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
ThinkPHP模板判斷輸出Empty標(biāo)簽用法詳解
這篇文章主要介紹了ThinkPHP模板判斷輸出Empty標(biāo)簽用法,需要的朋友可以參考下2014-06-06
laravel orm 關(guān)聯(lián)條件查詢(xún)代碼
今天小編就為大家分享一篇laravel orm 關(guān)聯(lián)條件查詢(xún)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10
實(shí)例介紹PHP的Reflection反射機(jī)制
這篇文章主要介紹了實(shí)例介紹PHP的Reflection反射機(jī)制,本文從使用Reflection獲取一個(gè)類(lèi)的信息角度來(lái)介紹PHP的Reflection反射機(jī)制,需要的朋友可以參考下2014-08-08
Laravel使用PHPQRCODE實(shí)現(xiàn)生成帶有LOGO的二維碼圖片功能示例
這篇文章主要介紹了Laravel使用PHPQRCODE實(shí)現(xiàn)生成帶有LOGO的二維碼圖片功能,涉及php引入PHPQRCODE類(lèi)生成二維碼圖片的相關(guān)調(diào)用與設(shè)置操作技巧,需要的朋友可以參考下2017-07-07

