Base64編碼文件二進制流是使用base64_encode函數對文件二進制信息進行編碼。
官方說明
base64_encode — 使用 MIME base64 對數據進行編碼
Report a bug 說明
string base64_encode ( string $data )
使用 base64 對 data 進行編碼。
設計此種編碼是為了使二進制數據可以通過非純 8-bit 的傳輸層傳輸,例如電子郵件的主體。
Base64-encoded 數據要比原始數據多占用 33% 左右的空間。
具體方式為:
代碼如下 復制代碼$path = 'image.jpg';
$fp = fopen($path, 'rb'); // 以二進制形式打開文件
$content = fread($fp, filesize($path)); // 讀取文件內容
fclose($fp);
$content = base64_encode($content); // 將二進制信息編碼成字符串
// echo $content;
上述程序輸出的結果類似:R0lGODlhEAAQAJECAISEhAAAhP///wAAACH5BAEAAAIALAAAAAAQABAAAAImlI
+pyxedQADQhVflpfAK30jG1lwmqIgWl6CClmKHxn6mdVb6zhcAOw==
這樣我們成功將一個文件轉換成了字符串。
解碼過程非常簡單,使用base64_decode($content)即可。
上述處理過程主要用途有:
1、接口傳輸
主要適用於通過WEB接口將文件從一個站點向另一個站點傳輸,可以用於XML信息。
2、存入數據庫
當然,將圖片等文件信息保存到數據庫中完全可以不用這麼做,但這種方式依然適用。對於數據庫新手來說這種方式更可接受。因為這完全是一個字符串。
3、文件加密
文件加密可大家用得比較少,舉個例子,假如我們有一套PHP程序需要保護,必須有授權碼的用戶才能正常運行,那麼我們可能使用授權碼來對文件進行加密,即將上述編碼後的字符串再次加工。運行過程需要授權碼才可運行。
當然還有其它用途,根據各人的需要靈活使用。