PHP對Base64的支持非常好,有內置的base64_encode與base64_decode負責圖片的Base64編碼與解碼。
編碼上,只要將圖片流讀取到,而后使用base64_encode進行進行編碼即可得到。
而解碼就略微麻煩一點,究其原因在於把圖片編碼成base64字符串后,編碼內會加入這些字符 data:image/png;base64,本來是用於base64進行識別的。但是如果直接放到php里用base64_decode函數解碼會導致最終保存的圖片文件格式損壞,而解決方法就是先去掉這一串字符:
|
1
2
3
|
$base64_string
=
explode
(
','
,
$base64_string
);
//截取data:image/png;base64, 這個逗號后的字符
$data
=
base64_decode
(
$base64_string
[1]);
//對截取后的字符使用base64_decode進行解碼
file_put_contents
(
$url
,
$data
);
//寫入文件並保存
|
