婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Windows平臺PHP+IECapt實現網頁批量截圖并創建縮略圖功能詳解

Windows平臺PHP+IECapt實現網頁批量截圖并創建縮略圖功能詳解

熱門標簽:哪里辦理400電話 廣東地市地圖標注 江西手機自動外呼防封系統是什么 仁和怎么申請400開頭的電話 怎么向銷售公司推銷外呼系統 長春人工外呼系統服務商 外呼系統撥打暫時無法接通 高德地圖標注家 廣州防封卡外呼系統多少錢一個月

本文實例講述了Windows平臺PHP+IECapt實現網頁批量截圖并創建縮略圖功能。分享給大家供大家參考,具體如下:

最近在開發一個本地互聯網應用的項目,為了增加用戶體驗,需要在搜索結果左側顯示如圖一所示的某個網站的縮略圖效果,在網上不停地百度谷歌了一上午后,發現大多數實現少量截圖還是可以的,如果大批量的截圖總會在中途出現很多問題,最終也沒有發現十分滿意的程序,干脆自己弄吧。

(圖一)

下面是在windows環境下用php結合iecapt實現的網頁截圖并創建縮略圖的步驟和代碼:

一、準備

下載最新版IECapt

官方地址:http://iecapt.sourceforge.net/

在linux環境下,可以考慮用HTML2Image來實現

下載地址:http://www.guangmingsoft.net/htmlsnapshot/html2image.i386.tar.gz

其它的實現方式還有CutyCapt,另外,只要是windows環境,有IE瀏覽器(推薦使用IE7)即可,這個大部分機器都應該不是問題。

二、創建數據表(這一步非必須,根據實際情況選用)

因為要批量截圖,數據十分的多,建立一個數據表來存放要截圖的網站的url地址還是有必要的,如下所示(mysql數據庫表):

CREATE TABLE IF NOT EXISTS `t_url` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
 `url` varchar(100) NOT NULL,
 `pictype` tinyint(1) unsigned NOT NULL COMMENT '1.非比例縮略圖2比例縮略圖
 `flag` tinyint(1) NOT NULL DEFAULT '1' COMMENT '0.禁用1.可用
 PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=gbk COMMENT='url鏈接表' AUTO_INCREMENT=1 ;

三、創建批處理文件

1.首先把下載的iecapt壓縮包解壓,然后把iecapt.exe放到要生成截圖的文件夾下(如:img_tmp)。

為了便于理解,在看下面代碼前,先創建一個test.bat文件,鼠標右擊編輯,寫入一句話if not exist ay360cn.jpg (iecapt.exe --url=http://www.ay360.cn/ --out=ay360cn.jpg)保存,雙擊運行test.bat看看是否會在本目錄下多出一個名叫ay360cn.jpg的文件,如果看到說明截圖成功,這句話是截圖的核心語句。

2.將需要截圖的url鏈接導入url鏈接表t_url,然后執行如下php代碼:

?php
//------------------------------------------------------------
//從表t_url中提取url鏈接,存放到數組$data中
//--------------------------------------------------------------
mysql_connect("localhost","root","123");
mysql_select_db("test");
$sql = "select * from t_url";
//選用sql語句$sql2 = "select * from t_url where pictype = 1 and flag = 1";
$query = mysql_query($sql);
//------------------------------------------
//生成批處理文件
//------------------------------------------
$expire_time = 10;  //代表10天,文件過期時間,86400秒/天
$i = 0;
foreach($row = mysql_fetch_array($query)){
 $url_md5 = md5($row['url']);
 $file_folder = 'img/';
 $filename = $file_folder.$url_md5.'.'.'jpg';
 $newname = $url_md5.'.'.'jpg';
 if (!file_exists($filename) || (filemtime ($filename) + $expire_time * 86400  time()) ) {
    $str .= "if not exist ".$newname." (iecapt.exe --url=".$value['url']." --out=".$newname.")\r\n";
    if(($i % 30) == 0  $i > 0){   //每30條為一個批處理文件
       $title = "title capt".$i.".bat\r\n";
       $str = $title.$str;
       $file_bat = fopen("img_tmp/capt".$i.".bat","w");
       if(fwrite($file_bat,$str)){
        echo "批處理文件capt".$i."生成成功br>";
        $str = "";
       }
    }
    $i = $i+1;
 }
}
?>

運行結果:

(圖二)

四、執行批處理文件

可以通過php程序循環執行 批處理文件,但在運行當中會出現很多問題,這里手動直接批量打開上面剛創建好的批處理文件,考慮到帶寬和cpu,最多不要超過20個,截圖的速度大約3-5秒/張效果如圖三:

(圖三)

五、創建縮略圖

  生成縮略圖的文件是create_image_img.php,其中包含生成縮略圖的主要的一個類文件是image.class.php,兩個文件的代碼如下:

ceate_image_img.php代碼:

?php
mysql_connect("localhost","root","123456");
mysql_select_db("test");
if(!isset($_GET['ID'])){
 $_GET['ID'] = 1;
}
if($_GET['ID']){
 $sql = "select * from t_url id =".$_GET['ID'];
 $query = mysql_query($sql);
 $row = mysql_fetch_array($query);
 echo "span style='color:#CE0000;'>正在生成縮略圖:/span>".$row['id']."nbsp;".$row['url']."br>br>";
  $url = $row['url'];
  $url_md5 = md5($url);
  $pictype = $row['pictype'];
  $limit_time = 1;                         //創建 $limit_time日內創建的大圖,天
  $thumbnails_folder = 'img_tmp/';             //保存臨時大圖的目錄,必須以/結束
  $thumbnails_folder2 = 'img/';               //保存小圖的目錄,必須以/結束
  $output_format = 'jpg';
  $cached_filename = $thumbnails_folder.$url_md5.".".$output_format;
  $to_filename = $thumbnails_folder2 .$url_md5.'.'.$output_format;
    if((file_exists($cached_filename) || filemtime ($filename) + $limit_time*86400 > time())
      !file_exists($to_filename)){
     if (filesize($cached_filename) > 1024){ //字節,不能是空白圖片
       //創建縮略圖
        include("image.class.php");
        $img = new Zubrag_image;
        // get parameters
        $img->image_type  = 2; // 1 = GIF, 2 = JPG, 3 = PNG
        $img->quality   = 80;
        $img->max_w    = 90;
        $img->max_h    = 67;
        $img->iscapt = ($pictype == 1) ? true : false; //此處用布爾型即可,數據庫不可1.非比例縮略圖2.按比例縮略
        if($img->GenerateThumbFile($cached_filename, $to_filename)){
         echo "span style='color:#CE0000;'>成功創建縮略圖:/span>".$row['id']."nbsp;".$row['url'];
        }else{
         echo "span style='color:#0000CE;'>未能創建縮略圖:/span>".$row['id']."nbsp;".$row['url'];
        }
      }
    }
 $sql = "select * from t_url id >".$_GET['ID']." and flag = 1 order by id asc limit 1";
 $query = mysql_query($sql);
 $row = mysql_fetch_array($query);
 echo "br>span style='color:#0000CE;'>準備生成縮略圖:/span>".$row['id']."nbsp;".$row['url']."br>br>";
 if($row['id']){
  echo "script>window.location.href='create_image_img.php?ID=".$row['id']."';/script>";
 }else{
  $_GET['ID'] = "";
 }
}
?>

image.class.php代碼:

?php
class Zubrag_image {
 var $iscapt = true;
 var $image_type = -1;
 var $quality = 100;
 var $max_w = 100;
 var $max_h = 100;
 function SaveImage($im, $filename) {
  $res = null;
  if(($this->image_type == 1)  !function_exists('imagegif')) $this->image_type = 3;
  switch ($this->image_type) {
   case 1:
    //if ($this->save_to_file) {
     $res = ImageGIF($im,$filename);
    //}
    //else {
    // header("Content-type: image/gif");
    // $res = ImageGIF($im);
    //}
    break;
   case 2:
     $res = ImageJPEG($im,$filename,$this->quality);
    break;
   case 3:
     $res = ImagePNG($im,$filename);
    break;
  }
  return $res;
 }
 function ImageCreateFromType($type,$filename) {
   $im = NULL;
   switch ($type) {
    case 1:
     $im = ImageCreateFromGif($filename);
     break;
    case 2:
     $im = ImageCreateFromJpeg($filename);
     break;
    case 3:
     $im = ImageCreateFromPNG($filename);
     break;
  }
  return $im;
 }
 function GenerateThumbFile($from_name, $to_name) {
  list($orig_x, $orig_y, $orig_img_type, $img_sizes) = GetImageSize($from_name);
  /*if ($this->cut_x > 0) $orig_x = min($this->cut_x, $orig_x);
  if ($this->cut_y > 0) $orig_y = min($this->cut_y, $orig_y);*/
    if ($this->iscapt  (($orig_y/$orig_x) > (90/67))) { //是截圖,且高度過高
     $orig_y = $orig_x*(67/90);
    }
  $this->image_type = ($this->image_type != -1 ? $this->image_type : $orig_img_type);
  if ($orig_img_type  1 or $orig_img_type > 3) die("Image type not supported");
  if ($this->image_type == 1) {
   $ni = imagecreate($this->max_w, $this->max_h);
  }
  else {
   $ni = imagecreatetruecolor($this->max_w,$this->max_h);
  }
  $white = imagecolorallocate($ni, 255, 255, 255);
  imagefilledrectangle( $ni, 0, 0, $this->max_w, $this->max_h, $white);
  $im = $this->ImageCreateFromType($orig_img_type,$from_name);
  imagepalettecopy($ni,$im);
  imagecopyresampled(
   $ni, $im,
   0, 0, 0, 0,
   $this->max_w, $this->max_h,
   $orig_x, $orig_y);
  if($this->SaveImage($ni, $to_name)){
     return true;
  }else{
     return false;
  }
 }
}
?>

六、總結

至此整個實現網頁截圖并創建縮略圖的的步驟結束,其中執行批處理文件部分為了提高截圖效率采用手動的方式,批量打開批處理文件,另外,鏈接數據庫部分還可以用封裝的數據庫操作類來實現,代碼會更加簡潔。

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP圖形與圖片操作技巧匯總》、《PHP數組(Array)操作技巧大全》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數學運算技巧總結》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》

希望本文所述對大家PHP程序設計有所幫助。

您可能感興趣的文章:
  • php實現的支付寶網頁支付功能示例【基于TP5框架】
  • php實現網頁上一頁下一頁翻頁過程詳解
  • PHP 爬取網頁的主要方法
  • 實例分析基于PHP微信網頁獲取用戶信息
  • php實現網頁常見文件上傳功能
  • php中抓取網頁內容的實例詳解
  • php編程實現簡單的網頁版計算器功能示例
  • PHP網頁緩存技術優點及代碼實例

標簽:文山 廈門 濮陽 海北 黔東 梅河口 惠州 湘西

巨人網絡通訊聲明:本文標題《Windows平臺PHP+IECapt實現網頁批量截圖并創建縮略圖功能詳解》,本文關鍵詞  Windows,平臺,PHP+IECapt,實現,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Windows平臺PHP+IECapt實現網頁批量截圖并創建縮略圖功能詳解》相關的同類信息!
  • 本頁收集關于Windows平臺PHP+IECapt實現網頁批量截圖并創建縮略圖功能詳解的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    精品对白一区国产伦| 欧美疯狂性受xxxxx喷水图片| 亚洲va中文字幕| 一区二区三区中文字幕精品精品 | 国产亚洲制服色| 久久久精品日韩欧美| 国产调教视频一区| 国产精品国产自产拍高清av| 国产精品国产三级国产普通话99| 国产精品天天摸av网| 中文字幕日韩精品一区| 亚洲精品写真福利| 亚洲国产综合在线| 日本欧美加勒比视频| 精品午夜一区二区三区在线观看| 久久er精品视频| www.亚洲激情.com| 欧美专区在线观看一区| 777久久久精品| 国产肉丝袜一区二区| 日韩理论在线观看| 欧美a级理论片| 国产精品一区二区你懂的| 91老司机福利 在线| 777久久久精品| 国产女人18水真多18精品一级做| 一区二区免费看| 精品综合免费视频观看| 91麻豆成人久久精品二区三区| 欧美一区二区日韩| 国产精品家庭影院| 天天操天天综合网| 不卡视频在线看| 欧美一级欧美三级在线观看| 欧美国产在线观看| 青青草国产精品亚洲专区无| 丁香桃色午夜亚洲一区二区三区| 欧美亚州韩日在线看免费版国语版| 欧美丰满一区二区免费视频| 亚洲国产精品二十页| 日韩电影免费在线| 91亚洲资源网| 国产亚洲一区字幕| 美女www一区二区| 99re视频精品| 国产亚洲综合在线| 麻豆精品一二三| 欧美美女一区二区| 亚洲精品ww久久久久久p站| 国内外成人在线| 337p亚洲精品色噜噜狠狠| 亚洲欧洲www| 国产成人综合自拍| 久久综合色一综合色88| 亚洲成国产人片在线观看| 99这里都是精品| 国产亲近乱来精品视频| 蜜臀av性久久久久av蜜臀妖精| 日本乱人伦aⅴ精品| 亚洲欧美综合另类在线卡通| 国产成人免费视频一区| 久久久久久久久伊人| 狠狠色伊人亚洲综合成人| 欧美嫩在线观看| 亚洲国产成人精品视频| 在线影视一区二区三区| 一个色妞综合视频在线观看| 91女人视频在线观看| 亚洲欧洲日韩女同| 色综合久久久网| 日韩毛片高清在线播放| 在线这里只有精品| 亚洲成人免费观看| 欧美日韩国产一级片| 日韩国产精品91| 日韩视频在线永久播放| 精品一区二区三区在线观看国产 | 精品国产伦一区二区三区免费| 午夜精品久久久久久不卡8050| 欧美亚日韩国产aⅴ精品中极品| 一区二区三区**美女毛片| 欧美日韩一区二区不卡| 日韩精品免费专区| 日韩女优av电影| 国产一二三精品| 中文字幕一区二区不卡| 99视频在线精品| 亚洲午夜电影在线| 欧美一区二区三区爱爱| 国产一区二区三区免费| 国产精品久久久久久久久免费丝袜 | 日本高清成人免费播放| 亚洲成人一区二区| 日韩视频在线你懂得| 成人免费视频网站在线观看| 中文字幕av不卡| 欧美日韩在线播放一区| 国产真实乱子伦精品视频| 亚洲男人天堂一区| 欧美xxxx老人做受| 97se亚洲国产综合在线| 亚洲成a人片在线观看中文| 精品国产91亚洲一区二区三区婷婷| 国产白丝精品91爽爽久久| 亚洲一级在线观看| 久久看人人爽人人| 欧美日韩国产一级二级| 国产91高潮流白浆在线麻豆| 亚洲图片一区二区| 国产欧美日韩在线视频| 欧美日韩国产区一| 99亚偷拍自图区亚洲| 久国产精品韩国三级视频| 亚洲欧美日韩综合aⅴ视频| 精品日韩在线观看| 欧美视频在线一区二区三区| 国产精品66部| 日本中文字幕不卡| 亚洲你懂的在线视频| 中文成人综合网| 精品捆绑美女sm三区| 欧美三级蜜桃2在线观看| 成人不卡免费av| 韩国精品一区二区| 日韩av高清在线观看| 亚洲免费观看视频| 中文字幕一区在线观看视频| 久久这里只精品最新地址| 欧美揉bbbbb揉bbbbb| 色8久久精品久久久久久蜜| 丁香婷婷综合网| 国产成人免费在线观看不卡| 免费观看30秒视频久久| 亚洲国产美国国产综合一区二区| 国产精品视频麻豆| 亚洲国产激情av| 欧美激情中文不卡| 欧美激情一区二区三区| 国产日韩欧美制服另类| 国产欧美一区二区在线观看| 精品国产一区二区三区不卡 | 蜜桃视频免费观看一区| 香蕉成人啪国产精品视频综合网| 综合激情成人伊人| 亚洲欧美偷拍卡通变态| 亚洲欧美日韩综合aⅴ视频| 亚洲欧美日韩一区二区| 综合自拍亚洲综合图不卡区| 中文字幕在线视频一区| 亚洲欧美色综合| 亚洲电影一级片| 男人的天堂亚洲一区| 秋霞午夜av一区二区三区| 日韩有码一区二区三区| 日韩黄色免费电影| 免费成人你懂的| 极品瑜伽女神91| 成人国产精品免费观看视频| 97精品电影院| 欧美在线免费播放| 制服丝袜亚洲播放| 久久久久久久久久久电影| 国产欧美日韩精品在线| 亚洲视频一区二区免费在线观看| 夜夜嗨av一区二区三区中文字幕| 午夜视频在线观看一区二区三区 | 国产精品毛片高清在线完整版| 国产精品狼人久久影院观看方式| 亚洲人成小说网站色在线| 亚洲.国产.中文慕字在线| 蜜桃精品视频在线| 丁香婷婷综合五月| 欧美午夜电影在线播放| 欧美一级久久久久久久大片| 久久综合九色综合欧美98| 成人欧美一区二区三区1314| 丝袜亚洲精品中文字幕一区| 国产精品一级在线| 日本道精品一区二区三区| 精品裸体舞一区二区三区| 亚洲男女一区二区三区| 久久国产精品无码网站| 色欧美片视频在线观看在线视频| 欧美一区二区久久| 亚洲国产高清aⅴ视频| 肉肉av福利一精品导航| 99视频有精品| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 精品国产乱码久久久久久闺蜜| 国产精品久久久久影院亚瑟 | 欧洲精品在线观看| 久久久www成人免费无遮挡大片| 一区二区三区不卡在线观看| 国内欧美视频一区二区| 在线观看91av| 亚洲黄色片在线观看| 丁香婷婷综合网| 精品国产电影一区二区| 日本最新不卡在线| 在线观看91精品国产入口|