base64_encode的问题,这会使我的网站php变慢

时间:2019-06-08 05:18:11

标签: php base64 file-get-contents

我已将image src加密与base64_encode一起使用,但是该代码使我的网站变慢,但是当我放置此代码时,这会使我的网站变慢。因此,没有人有任何解决方案可以通过这种类型的加密来使我的网站更快。我将代码放在下面。

<?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>';
      }
?>

有人可以帮我吗?

1 个答案:

答案 0 :(得分:0)

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

如果不使用此代码加载页面并使用直接链接到图像,则页面本身加载速度会大大提高,然后然后浏览器将加载图像。

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