您現在的位置是:電腦技術吧?>? 編程技術 ??>??php gd庫,php??>??正文詳情

php gd庫,php

章貝莉2019-12-10 13:22:39 人圍觀
簡介php圖像處理本文主要介紹了在PHP中使用GD庫下載網頁中的所有圖片。本文直接給出了實現代碼。您可以參考前面的PHP教程,并說phpgd庫可以下載遠程圖片,但它只下載圖片。原php實戰小項

這篇文章主要介紹了php中使用gd庫實現下載網頁中所有圖片,本文直接給出實現代碼,需要的朋友可以參考下  在前期的php教程就講了php gd庫可以實現遠程圖片的下載,但是那只是下載了一張圖片,原理是一樣的,要想下載一個網頁的所有圖片只要使用正則表達式進行判斷,找出所有的圖片url就可以進行循環下載了,我特地參照網絡資源編寫了gd庫圖片下載類!  php代碼如下:  ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 ?php header(Content-type:text/html ; charset=utf-8); if (!empty($_POST['submit'])){ $url = $_POST['url']; //為了獲取相對路徑的圖片所做的操作 $url_fields = parse_url($url); $main_url = $url_fields['host']; $base_url = substr($url,0,strrpos($url, '/') 1); //獲取網頁內容 //設置代理服務器 $opts = array('http'=array('request_fulluri'=true)); $context = stream_context_create($opts); $content = file_get_contents($url,false,$context); //匹配img標簽,將所有匹配字符串保存到數組$matches $reg = /img.*?src=(.*?).*?/i; preg_match_all($reg, $content, $matches); $count = count($matches[0]); for ($i=0; $i$count; $i ){ /*將所有圖片的url轉換為小寫 *$matches[1][$i] = strtolower($matches[1][$i]); */ //如果圖片為相對路徑就轉化為全路徑 if (!strpos('a'.$matches[1][$i], 'http')){ //因為'/'是第0個位置 if (strpos('a'.$matches[1][$i], '/')){ $matches[1][$i] = 'http://'.$main_url.$matches[1][$i]; }else{ $matches[1][$i] = $base_url.$matches[1][$i]; } } } //過濾重復的圖片 $img_arr = array_unique($matches[1]); //實例化圖片下載類 $getImg = new DownImage(); $url_count = count($img_arr); for ($i=0; $i$url_count; $i ){ $getImg-source = $img_arr[$i]; $getImg-save_address = './pic/'; $file = $getImg-download(); } echo 下載完成!哈哈,簡單吧!; } class DownImage{ public $source;//遠程圖片URL public $save_address;//保存本地地址 public $set_extension; //設置圖片擴展名 public $quality; //圖片的質量(0~100,100最佳,默認75左右) //下載方法(選用GD庫圖片下載) public function download(){ //獲取遠程圖片信息 $info = @getimagesize($this-source); //獲取圖片擴展名 $mime = $info['mime']; $type = substr(strrchr($mime, '/'), 1); //不同的圖片類型選擇不同的圖片生成和保存函數 switch($type){ case 'jpeg': $img_create_func = 'imagecreatefromjpeg'; $img_save_func = 'imagejpeg'; $new_img_ext = 'jpg'; $image_quality = isset($this-quality) ? $this-quality : 100; break; case 'png': $img_create_func = 'imagecreatefrompng'; $img_save_func = 'imagepng'; $new_img_ext = 'png'; break; case 'bmp': $img_create_func = 'imagecreatefrombmp'; $img_save_func = 'imagebmp'; $new_img_ext = 'bmp'; break; case 'gif': $img_create_func = 'imagecreatefromgif'; $img_save_func = 'imagegif'; $new_img_ext = 'gif'; break; case 'vnd.wap.wbmp': $img_create_func = 'imagecreatefromwbmp'; $img_save_func = 'imagewbmp'; $new_img_ext = 'bmp'; break; case 'xbm': $img_create_func = 'imagecreatefromxbm'; $img_save_func = 'imagexbm'; $new_img_ext = 'xbm'; break; default: $img_create_func = 'imagecreatefromjpeg'; $img_save_func = 'imagejpeg'; $new_img_ext = 'jpg'; } //根據是否設置擴展名來合成本地文件名 if (isset($this-set_extension)){ $ext = strrchr($this-source,.); $strlen = strlen($ext); $newname = basename(substr($this-source,0,-$strlen)).'.'.$new_img_ext; }else{ $newname = basename($this-source); } //生成本地文件路徑 $save_address = $this-save_address.$newname; $img = @$img_create_func($this-source); if (isset($image_quality)){ $save_img = @$img_save_func($img,$save_address,$image_quality); }else{ $save_img = @$img_save_func($img,$save_address); } return $save_img; } } ? form method=POST action= 遠程url地址:input type=text name=url size=30 / input type=submit name=submit value=下載該頁面所有圖片 / /form   運行結果如圖:

版權聲明:本文由 章貝莉 整理編輯。

原標題:php smarty,php.ini在哪

轉載注明出處:http://www.dn9ww09s.icu/program/15298.html

文章評論

    共有條評論來說兩句吧...

    用戶名:

    驗證碼:

作者推薦

  • 外部全局數組,超全局數組

    外部全局數組,超全局數組 相關圖片定義一vb個全局數組今天,我的同學遇到了一個C語言中的全局數組和局部數組的問題。經過很長一段時間的打牌,我第一次沒有看到問題。現在我來解決這個問題并給出解決辦法。問題...

  • 靜態數組賦值,創建靜態數組

    靜態數組賦值,創建靜態數組 相關圖片vb靜態數組這是假設您知道數組的基本特性,所以讓我們考慮如何在VBScript中處理ASP,。VBScript中的數組是0,這意味著數組元素的索引總是從0開始。0索引表示數靜態數組初始化為0...

  • 文件系統支持對文件權限的設置,win10文件系統權限

    文件系統支持對文件權限的設置,win10文件系統權限 相關圖片linux查看文件權限在iis7.0上,以fastcgi模式配置PHP運行環境。在測試PHP程序能夠正常運行后,部署PHP程序并導入程序的原始數據和配置信息。很快就會有問題。讓我們把Windows設置文件權限...

  • 圖表,圖表的應用

    圖表,圖表的應用 相關圖片表格動態圖表FusionCharts free下載地址:http://www.FusionCharts.com/goods/FusionCharts-free/next,在如何做動態圖表...

  • asp語法,asp語法教程

    asp語法,asp語法教程 相關圖片razor 語法If語句使變量或其他類型的數據能夠作出決定的方法。例如,您可能有一個腳本來檢查布爾值是真是假,或者變量是否包含數字或字符串值。如果邏輯條件為true,則使用ifasp語言...

  • php猴子大王,php猴子選大王

    php猴子大王,php猴子選大王 相關圖片PHP猴王本文舉例說明如何解決這一問題。與您分享以供參考。具體分析如下:問題描述:一群猴子圍成一圈,依次按1、2、…、N。然后從第一個開始數數,數到m,把它踢出圓圈,從后猴...

  • ap數據庫,ap數據庫怎么升級

    ap數據庫,ap數據庫怎么升級 相關圖片api數據庫AP plet是一個用Java語言編寫的小型應用程序。它可以嵌入到HTML中,通過WWW瀏覽器進行解釋和執行。但是,如何處理互聯網世界中大量的數據和分布在網絡各tp5數據庫增刪改查...

  • 緩存,什么是緩存

    緩存,什么是緩存 相關圖片ie清理緩存內容緩存是web應用程序中最常用的優化技術之一。例如,我們可以使用自定義JSP標記來命名它,并封裝需要緩存的每個頁面片段。任何自定義標記都可以控制它包含的部分(緩...

  • while語法,since語法

    while語法,since語法 相關圖片while是介詞嗎另一個常見的post do while循環。。。下一個循環。在do while循環語句中重復語句塊的次數是可變的。當條件為真或條件變為真時,重復該語句。語法如下while后面動詞用法...

  • asp語法,asp語法教程

    asp語法,asp語法教程 相關圖片razor 語法下次循環使用時,需要多次執行一段代碼。語法如下:for counter=initial“value to finish”value[step incrementasp語言特點...

熱評文章

  • 系統失敗自動重啟,收集錯誤信息自動重啟

    系統失敗自動重啟,收集錯誤信息自動重啟 相關圖片win10關機自動重啟本文主要介紹了利用PHP腳本監控nginx502錯誤并自動重啟PHP FPM。本文直接給出了實現代碼,然后在Cron中執行。您可以不時地參考最近的服務器nginwin10 自動重啟...

  • php 數組轉字符串,php把數組字符串變成數組

    php 數組轉字符串,php把數組字符串變成數組 相關圖片將數組變成字符串本文以一個實例說明PHP解析字符串數組的方法。與您分享以供參考。具體如下:?12345678910121314151617181920122?PHP$STR=1php字符串替換...

  • 字符串substr函數,substr截取字符串

    字符串substr函數,substr截取字符串 相關圖片oracle從右截取字符串本文描述了PHP如何使用substr()和strps()在字符串中查找特定字符。與您分享以供參考。具體分析如下:需求:在下面的字符串中找到雙豎線前的字符,并在大js字...

  • 護衛神php升級,php搭建

    護衛神php升級,php搭建 相關圖片linux一鍵php環境搭建本文主要介紹了守護神PHP套件(php5.5.24)的PHP版本升級方法。您可以參考最新的編輯器來學習和研究win2008r2的PHP環境配置。我們發現守護神P一鍵php環境...

  • 結構與功能關系實例,結合實例說明包裝的功能

    結構與功能關系實例,結合實例說明包裝的功能 相關圖片c4d實例功能本文主要介紹PHP文件讀取函數的應用實例以及文件數據讀取函數的常用方法和區別。這是非常詳細的,可以參考所需的合作伙伴。PHP文件讀取操作比文件寫入操作涉及更多的...

  • php重載,php重載和重寫的區別

    php重載,php重載和重寫的區別 相關圖片python重載和重寫的區別對于弱類型語言,PHP函數重載不像OOP。弱類型沒有區別,所以不能通過它們來實現。但是,可以通過以下方法實現簡單的偽重載。函數重載-偽重載的替換方法。讓...

  • php header跳轉,php設置header

    php header跳轉,php設置header 相關圖片php跳轉url當用戶成功登錄時,使用標題跳轉到主頁總是錯誤的。不可能跳轉到你想要的頁面。最后,杜娘花了很長時間才找到解決辦法,這是這里的共同點。有同事反映,近期推出的一...

  • php序列化,php反序列化

    php序列化,php反序列化 相關圖片php serialize本文主要介紹PHP序列化函數serialize()和unserialize()與PHP本機序列化方法的比較。您可以參考以下內容了解所需的合作伙伴。PHP有一個很php中文教程...

  • 隊列的數據結構,數據結構隊列的應用

    隊列的數據結構,數據結構隊列的應用 相關圖片數據結構棧和隊列總結本文主要介紹PHP數據結構隊列(splqueue)和優先級隊列(splpriorityqueue)的簡單使用示例。您可以為您的朋友參考此數據結構。就像我們生活中數據結構隊列出隊函...

  • 單雙鏈表,雙鏈表

    單雙鏈表,雙鏈表 相關圖片單鏈表雙鏈表循環鏈表本文主要介紹PHP雙鏈表的介紹及其使用實例的相關資料。對于需要參考雙鏈表的朋友來說,它是一種重要的線性存儲結構。對于雙鏈表中的每個節點,不僅要保存...

關注微信

变脸官网查询