Data URI 方案允許將小型圖片直接以 Base64 編碼嵌入 HTML/CSS/JS,減少 HTTP 請求,提升首屏加載速度。本文演示 PHP 實現圖片轉 Base64 並生成 <img> 標籤的完整流程。
$img_file = 'https://img.alicdn.com/bao/uploaded/TB1eaiELpXXXXcPXpXXSutbFXXX.jpg';
// 1. 獲取圖片信息(含 MIME 類型)
$img_info = getimagesize($img_file);
// 2. 讀取文件內容並 Base64 編碼
$img_src = "data:{$img_info['mime']};base64," . base64_encode(file_get_contents($img_file));
// 3. 輸出 img 標籤
exit("<img src='{$img_src}' />");
data:[<mediatype>][;base64],<data> mediatype 例:image/jpeg, image/png, image/gif base64 表示數據經 Base64 編碼 data 編碼後的字符串
data:image/gif;base64,...data:image/png;base64,...data:image/jpeg;base64,...data:image/x-icon;base64,... (favicon)data:text/css;base64,... (CSS 內嵌)data:text/javascript;base64,... (JS 內嵌)| 優勢 | 劣勢/限制 |
|---|---|
| 減少 HTTP 請求,首屏更快 | 體積膨脹 ~33%,不適合大圖 |
| 無跨域問題,攜帶攜帶方便 | 無法被瀏覽器單獨緩存 |
| 郵件模板、內聯樣式必備 | IE8 以下不支援,IE8/9 限 32KB |
background: url(data:image/png;base64,...) 同理適用合理使用 Data URI 可顯著優化關鍵渲染路徑,但切勿濫用於大圖,否則得不償失。