日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

PHP base64

發布時間:2023/12/20 php 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 PHP base64 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
<?php header('Content-type:text/html;charset=utf-8'); function image_base64($image_file) {// getimagesize獲取圖片的屬性值返回一個數組,索引0對應圖片寬度,索引1對應圖片高度/** getimagesize獲取圖片的屬性值返回一個數組,這里 $image_info['mime'] 對應的值就是字符串 "image/jpeg"* 索引 0 給出的是圖像寬度的像素值* 索引 1 給出的是圖像高度的像素值* 索引 2 給出的是圖像的類型,返回的是數字,其中1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 = JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM* 索引 3 給出的是一個寬度和高度的字符串,可以直接用于 HTML 的 <image> 標簽* 索引 bits 給出的是圖像的每種顏色的位數,二進制格式* 索引 channels 給出的是圖像的通道值,RGB 圖像默認是 3* 索引 mime 給出的是圖像的 MIME 信息,此信息可以用來在 HTTP Content-type 頭信息中發送正確的信息,如:* header("Content-type: image/jpeg");*/$image_info = getimagesize ( $image_file );// 組合成base64編碼// chunk_split 將 base64_encode() 的輸出轉換成符合 RFC 2045 語義的字符串。它會在每 chunklen(默認為 76)個字符后邊插入 end(默認為空格 " ")// 此處不用chunk_split函數處理也行,對于<img>標簽顯示圖像沒影響// 字符串雙引號中數組用{}擴起來,即可在字符串中正常顯示其中內容$base64_image = "data:{$image_info['mime']};base64," . chunk_split ( base64_encode ( file_get_contents ( $image_file ) ) );return $base64_image; }$image_file = './test.jpg';$base64_image = image_base64 ( $image_file ); // 獲取到的base64碼為 data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBLAEsAAD/4RVFRXhpZgAATU0AKgAAAAgACgEPAA...... ?> <img src="<?php echo $base64_image;?>" /><?php/*** 反編譯data/base64數據流并創建圖片文件** @param string $base64_image base64數據流* @param string $put_url 存放圖片文件目錄,路徑后不用加斜杠/* @param string $fileName 圖片文件名稱(不含文件后綴)* @return mixed 返回可在瀏覽器訪問的圖片地址或布爾類型*/ function base64DecImg($base64_image, $put_url, $fileName) {// 瀏覽器訪問當前路徑URL$__URL__ = 'localhost/test/';try {// 分割base64碼,獲取頭部編碼部分$headData = explode ( ';', $base64_image );// 再獲取編碼前原文件的后綴信息$postfix = explode ( '/', $headData [0] );// 判斷源文件是否是圖片if (strstr ( $postfix [0], 'image' )) {// 判斷是否是jpeg圖片,并賦正確后綴名$postfix = $postfix [1] == 'jpeg' ? 'jpg' : $postfix [1];// 拼接要合成圖片的完整路徑及擴展名// DIRECTORY_SEPARATOR目錄分隔符,由于win與linux目錄分隔符不同,PHP根據當前系統返回正確目錄分隔符。windows返回\ 或 /,linux返回/$file_url = $put_url . DIRECTORY_SEPARATOR . $fileName . '.' . $postfix;// 去掉$base64_image碼中頭部內容,獲取文件編碼部分內容$base64Arr = explode(",",$base64_image);// 經base64_decode解碼$image_decode = base64_decode ($base64Arr[1] );try {// 合成文件file_put_contents ( $file_url, $image_decode );// 返回可在瀏覽器訪問的圖片地址return $__URL__ . $file_url;} catch ( Exception $e ) {return false;}}} catch ( Exception $e ) {return false;}return false; } // ./表示當前頁面的所在路徑 echo base64DecImg ( $base64_image, "./", "test2" ); ?>data:image/*;base64 就是 Data URI scheme。 Data URI scheme是在RFC2397中定義的,目的是將一些小的數據,直接嵌入到網頁中,從而不用再從外部文件載入 例如: data:image/jpeg;base64,/9j/4AAQSkZJRgABAgEBLAEsAAD/4RVFRXhpZgAATU0AKgAAAAgACgEPAA...... base64碼中,data表示取得數據的協定名稱,image/jpeg 是數據類型名稱,base64 是數據的編碼方法,逗號后面就是這個文件base64編碼后的數據目前,Data URI scheme支持的類型有: data:,文本數據 data:text/plain,文本數據 data:text/html,HTML代碼 data:text/html;base64,base64編碼的HTML代碼 data:text/css,CSS代碼 data:text/css;base64,base64編碼的CSS代碼 data:text/javascript,Javascript代碼 data:text/javascript;base64,base64編碼的Javascript代碼 data:image/gif;base64,base64編碼的gif圖片數據 data:image/png;base64,base64編碼的png圖片數據 data:image/jpeg;base64,base64編碼的jpeg圖片數據 data:image/x-icon;base64,base64編碼的icon圖片數據 base64簡單地說,它把一些 8-bit 數據翻譯成標準 ASCII 字符,網上有很多免費的base64 編碼和解碼的工具

?

轉載于:https://www.cnblogs.com/dreamhome/p/6010622.html

總結

以上是生活随笔為你收集整理的PHP base64的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。