原理:通过对文件的二进制数据进行base64进行编码。

优点:

  • 1.可以减少网络请求。
  • 2.字符串编码方便传输存储。

缺点:

  • 1.不能在客户端进行缓存。(如图片,只能通过css文件进行背景图片缓存)
  • 2.渲染时需要base64解码,需要消耗cpu资源。

建议根据实际情况,合理使用。

应用实例
phpinfo页面logo
DataURL 初探_第1张图片

demo

$filePath = 'http://admin.test.yundou.com/images/guopiao_logo.jpg';

function getFileBase64DataUrl(string $filePath): string
{
    $parseArr = (parse_url($filePath));
    $fileExtension = pathinfo($parseArr['path'])['extension'];
    $base64Content = base64_encode(file_get_contents($filePath));

    $returnString = '';
    if ($fileExtension == 'jpg') {
        $returnString .= 'data:image/' . $fileExtension . ';';
        $returnString .= 'base64,';
        $returnString .= $base64Content;
    }
    return $returnString;
}
$dataUrl=getFileBase64DataUrl($filePath);
echo "";