欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

基于linnux+phantomjs實現生成圖片格式的網頁快照

 更新時間:2015年04月15日 14:47:01   投稿:hebedich  
在代碼區(qū)看到一個生成站點快照的代碼,看了半天才發(fā)現,作者僅僅貼出來業(yè)務代碼,最核心的生成快照圖片的代碼反而沒有給出來。 以前記得google搜索提供站點縮略圖,那時候覺得好神奇,但是沒有花時間去做深入的調研。昨天又遇到了,那就順便調研下吧。

安裝擴展:
  (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  //可以忽略 實際執(zhí)行中php是執(zhí)行 /casperjs/bin/casperjs

 
    (2)安裝phantomjs,下載地址:http://phantomjs.org/download.html
       下載后操作很簡單,直接把解壓好的\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封裝分頁工具類

    常用PHP封裝分頁工具類

    這篇文章主要為大家詳細介紹了常用PHP封裝分頁工具類,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • Zend Framework教程之模型Model用法簡單實例

    Zend Framework教程之模型Model用法簡單實例

    這篇文章主要介紹了Zend Framework教程之模型Model用法,結合實例形式簡單分析了Zend Framework中模型Model的原理,文件組織結構及具體使用方法,需要的朋友可以參考下
    2016-03-03
  • thinkPHP通用控制器實現方法示例

    thinkPHP通用控制器實現方法示例

    這篇文章主要介紹了thinkPHP通用控制器實現方法,結合實例形式分析了thinkPHP針對數據庫的基本CURD操作方法的封裝實現技巧,需要的朋友可以參考下
    2017-11-11
  • 詳解phpstorm2020最新破解方法

    詳解phpstorm2020最新破解方法

    PhpStorm可隨時幫助用戶對其編碼進行調整,運行單元測試或者提供可視化debug功能。這篇文章主要介紹了phpstorm2020最新破解方法(2020年7月仍可用),需要的朋友可以參考下
    2020-09-09
  • 小程序微信支付功能配置方法示例詳解【基于thinkPHP】

    小程序微信支付功能配置方法示例詳解【基于thinkPHP】

    這篇文章主要介紹了小程序微信支付功能配置方法,結合實例形式分析了基于thinkPHP的微信小程序支付功能相關操作技巧與注意事項,需要的朋友可以參考下
    2019-05-05
  • Laravel基礎_關于view共享數據的示例講解

    Laravel基礎_關于view共享數據的示例講解

    今天小編就為大家分享一篇Laravel基礎_關于view共享數據的示例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • ThinkPHP模板判斷輸出Empty標簽用法詳解

    ThinkPHP模板判斷輸出Empty標簽用法詳解

    這篇文章主要介紹了ThinkPHP模板判斷輸出Empty標簽用法,需要的朋友可以參考下
    2014-06-06
  • laravel orm 關聯條件查詢代碼

    laravel orm 關聯條件查詢代碼

    今天小編就為大家分享一篇laravel orm 關聯條件查詢代碼,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • 實例介紹PHP的Reflection反射機制

    實例介紹PHP的Reflection反射機制

    這篇文章主要介紹了實例介紹PHP的Reflection反射機制,本文從使用Reflection獲取一個類的信息角度來介紹PHP的Reflection反射機制,需要的朋友可以參考下
    2014-08-08
  • Laravel使用PHPQRCODE實現生成帶有LOGO的二維碼圖片功能示例

    Laravel使用PHPQRCODE實現生成帶有LOGO的二維碼圖片功能示例

    這篇文章主要介紹了Laravel使用PHPQRCODE實現生成帶有LOGO的二維碼圖片功能,涉及php引入PHPQRCODE類生成二維碼圖片的相關調用與設置操作技巧,需要的朋友可以參考下
    2017-07-07

最新評論