> 백엔드 개발 > PHP 튜토리얼 > linnux phantomjs_php 예제를 기반으로 이미지 형식으로 웹 페이지 스냅샷 생성

linnux phantomjs_php 예제를 기반으로 이미지 형식으로 웹 페이지 스냅샷 생성

WBOY
풀어 주다: 2016-05-16 20:17:28
원래의
1427명이 탐색했습니다.

확장 프로그램 설치:
(1) 다음은 Linux에서의 설치 과정입니다. git이 설치되어 있지 않은 경우 먼저 yum install git
을 실행하세요. casperjs 설치

코드 복사 코드는 다음과 같습니다.

CD /
git 클론 git://github.com/n1k0/casperjs.git
CD 캐스퍼J
ln -sf /casperjs/bin/casperjs /usr/local/bin/casperjs //무시해도 됩니다. 실제 실행에서는 php가 실행됩니다. /casperjs/bin/casperjs


(2) phantomjs 설치, 다운로드 주소: http://phantomjs.org/download.html
다운로드 후 작업은 매우 간단합니다. 압축이 풀린 inphantomjs를 usrlocalbinphantomjs로 옮기면 됩니다.
| 결과에 오류가 표시되지 않아 설치가 정상임을 나타냅니다

(3)글꼴 설치
​​ 1. 먼저 msyh.ttf(일반), msyhbd.ttf(굵게) 두 파일을 포함하는 "Microsoft Yahei" 글꼴 라이브러리 세트(Google에서 많이 사용)를 가져옵니다.
​ 2. /usr/share/fonts 디렉터리 아래에 win 등의 하위 디렉터리를 생성하고, 명령어는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.

# mkdir /usr/share/fonts/win

3. msyh.ttf 및 msyhbd.ttf를 이 디렉터리에 복사합니다. 예를 들어 다음 두 파일을 /root/Desktop에 배치합니다.

코드 복사 코드는 다음과 같습니다.

# cd /root/데스크탑
# cp msyh.ttf msyhbd.ttf /usr/share/fonts/win/

4. 글꼴 색인 정보 생성 및 글꼴 캐시 업데이트:

코드 복사 코드는 다음과 같습니다.

# cd /usr/share/fonts/win
                 # mkfontscale(mkfontscale: 명령을 찾을 수 없다는 메시지가 표시되면 직접 설치해야 합니다. # yum install mkfontscale)
             # mkfontdir
~ ~
이제 폰트가 설치되었습니다!

<&#63;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&#63;”,详情参考http://mengkang.net/87.html
    putenv("PHANTOMJS_EXECUTABLE=/usr/local/bin/phantomjs");
    $command = "phantomjs phantomjs.js {$url} {$filePath}"; 
    @exec($command); 
  
    exit($filePath); 
  } 
&#63;> 
  
<!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: '&#63;', 
        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.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 추천
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿