首页 > 解决方案 > base64_encode 的问题,它减慢了我的网站 php

问题描述

我已经使用带有 base64_encode 的图像 src 加密,但是该代码使我的网站变慢,但是当我放置此代码时,它会使我的网站变慢。所以有人有任何解决方案可以通过这种类型的加密使我的网站更快。我把我的代码放在下面。

<?php
   while ($user = mysqli_fetch_array($queryResult, MYSQLI_ASSOC)){
      if ($user["main_picture"]){
       $imageData = base64_encode(file_get_contents($user["main_picture"]));
       $result .= '<td><div class="user_image_container"><img src="data:image/jpeg;base64,'.$imageData.'"></img></div></td>';
      }
      else{
          $result .= '<td></td>';
      }
?>

任何人都可以帮助我。

标签: phpbase64file-get-contents

解决方案


当您使用此代码加载页面时,PHP 解释器必须先完成通过网络获取图像,然后才能解释页面的其余部分,这会增加时间。

如果您要在没有此代码的情况下加载页面并使用指向图像的直接链接,则页面本身会加载得更快,然后浏览器会加载图像。

潜在的解决方法:使用数据库存储映射到图像的一次性令牌。当用户加载页面时,生成一个令牌(这将比拉取图像更快)并让图像 src 指向您设置的图像服务端点,该端点检查令牌,将其标记为已使用,获取文件并然后发送图像。如果您希望它是真正的一次性使用,您可能会遇到缓存问题,但它至少隐藏了图像的来源。


推荐阅读