gpt4 book ai didi

php - 如何避免每次都加载用户的标志

转载 作者:行者123 更新时间:2023-11-27 22:28:27 25 4
gpt4 key购买 nike

我的网站有很多图片,例如用户的 Logo 、产品的 Logo /图片或公司的 Logo /图片。

enter image description here

现在,我将这些 Logo 或图像名称存储在 MySQL 中。如果我想知道一个用户的标志,我必须查询 mysql,并找到标志。就像这样:

<img src="{{FileManager::getFile('user_logo',$loop->photo)}}" />

问题是,我的网站正在成长并变得越来越大。假设,我有一个页面,它将显示用户的信息(用户名、用户年龄...用户 Logo )。
我必须查询 MySQL 才能找到他们的标志。每次,这都将花费大量时间等待页面加载用户 Logo 。我想知道如何加快加载 Logo /图像的速度?

我正在使用 Laravel 4 和这个服务器规范:

  • Apache
  • PHP 5.4
  • MySQL 5.5
  • Redis 2.6

最佳答案

想法

最好的方法是根据用户 ID 将 Logo 图像存储在服务器层次结构中。所以你不需要查询图像,因为你知道获取它们的一切:

  • 图像位置:将是一个修复文件夹。
  • 图片名称:用户id。

例如,您可以创建一个 image您可以使用与用户 ID 匹配的文件名保存所有 Logo 的目录。通过这种方式,您可以通过一个简单的 URL(如 example.com/images/{userid})简单地获取用户 Logo 。 .

如果这不适合您的目录结构,请重新构建它。例如,您可以为每个用户创建一个文件夹,您可以在其中保存他们的照片,名称如 logo1 , logo2等,或者也只是将其放入子文件夹。您可以通过类似 example.com/images/{userid}/logo1 的 URL 获取这些信息或 example.com/images/{userid}/logos/1 .

实现指南

以下是服务器端的一些实现指南:

用户个人资料页面

  1. 从 URL 获取用户 ID。喜欢这个id 150来自 URL example example.com/users/150 .
  2. 验证它。
  3. 像这样加载 Logo :<img src="example.com/images/150/logos/1" alt="Logo">

用户列表页面

  1. 查询所有用户,例如:SELECT id, name FROM users WHERE id > 50
  2. 使用用户 ID 呈现包含图像的列表。

列表的示例循环:

foreach ($users as $user) {
echo $user->name;
echo '<br>';
echo '<img src="example.com/images/' . $user->id . '/logos/1" alt="Logo">';
}

每隔一个列表

与用户列表实现相同,只需确保您存储或加入用户,以便您可以再次从一个查询中获取 ID。

关于php - 如何避免每次都加载用户的标志,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20772906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com