基于linnux+phantomjs实现生成图片格式的网页快照
程序员文章站
2022-06-26 10:39:42
安装扩展:
(1)下面是我在linux上的安装过程,如果没有安装git请先yum install git
安装cas...
安装扩展:
(1)下面是我在linux上的安装过程,如果没有安装git请先yum install git
安装casperjs
复制代码 代码如下:
cd /
git clone git://github.com/n1k0/casperjs.git
cd casperjs
ln -sf /casperjs/bin/casperjs /usr/local/bin/casperjs //可以忽略 实际执行中php是执行 /casperjs/bin/casperjs
(2)安装phantomjs,下载地址:
下载后操作很简单,直接把解压好的\bin\phantomjs移动到\usr\local\bin\phantomjs就可以了。\
测试phantomjs --version 有结果不报错,说明安装ok
(3)安装字体
1. 首先获得一套“微软雅黑”字体库(google一下一大把),包含两个文件msyh.ttf(普通)、msyhbd.ttf(加粗);
2. 在/usr/share/fonts目录下建立一个子目录,例如win,命令如下:
复制代码 代码如下:
# mkdir /usr/share/fonts/win
3. 将msyh.ttf和msyhbd.ttf复制到该目录下,例如这两个文件放在/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 )
至此,字体已经安装完毕!
<?php if (isset($_get['url'])) { set_time_limit(0); $url = trim($_get['url']); $filepath = md5($url).'.png'; if (is_file($filepath)) { exit($filepath); } //如果不加这句就会报错“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('正在生成网站快照,请耐心等待...'); 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(); });
以上所述就是本文的全部内容了,希望大家能够喜欢。
上一篇: php动态添加url查询参数的方法
下一篇: PHP获取毫秒级时间戳的方法
推荐阅读
-
基于Vue-Cli 打包自动生成/抽离相关配置文件的实现方法
-
SSM基于配置生成API接口的实现设计(一)
-
基于VuePress 轻量级静态网站生成器的实现方法
-
AngularJS基于http请求实现下载php生成的excel文件功能示例
-
JS实现点击生成UUID的方法完整实例【基于jQuery】
-
基于Javascript实现的不重复ID的生成器
-
PHP基于ffmpeg实现转换视频,截图及生成缩略图的方法
-
php实现生成PDF文件的方法示例【基于FPDF类库】
-
基于Webpack, KnockoutJs,esyui,koeasyui实现类vue-cli生成的模板框架
-
基于linnux+phantomjs实现生成图片格式的网页快照