【问题标题】:Randomly assign an image to each page in my site?为我网站中的每个页面随机分配一张图片?
【发布时间】:2011-08-01 16:19:09
【问题描述】:

我有一个 50 页的网站和一组 20 张图片。如何在某种程度上随机地为每个页面分配一个图像,但确保每个页面始终显示相同的图像?

每个页面都有一个 slug 值,有没有办法将其散列为 1-20 的整数(或任何一组数字)?

【问题讨论】:

  • 50页的静态内容,还不如自己动手。
  • @Null 我同意 - 特别是如果一旦分配,它将始终使用相同的图像......

标签: php algorithm random


【解决方案1】:

正如@Null Set 所说,如果这是静态内容,那么手动完成就足够简单了。另一方面,如果页面是动态生成的,那么将这些信息保存在数据库中也许是值得的。您可以有一个 images 表,其中每条记录都有一个自动递增的 id 和一个图像的 URL。保存页面信息的数据库表可以保存相关images 表记录的外键。

任何新页面都可以通过使用等同于RAND() 的数据库从images 表中选择一条随机记录来使用(尽管要注意对于MySQL,RAND() 很快就会遇到性能问题 - 20记录很好,但如果你开始添加更多,你将不得不start optimizing多一点)。

【讨论】:

    【解决方案2】:

    我几乎可以肯定,您可以使用 body id="page" 来定义将使用选择器显示的图像。

    与使用 css sprite 为导航设置活动状态的方式大致相同。

    【讨论】:

      【解决方案3】:

      $count = md5($str) % 20; 这样的东西怎么样,如果页面str 没有改变,页面图像将保持不变。如果你改变内容,那么图像就会改变。

      PHP 人通常包括页眉、页脚和其他部分的总页数,但如果不是这样或内容被分隔在某个文件中,那么您也可以使用md5_file 函数。

      【讨论】:

      • @Steve Jessop 是的。此外,如果您在取模之前添加偏移量,您可以倾斜所有图像(md5($str+$salt)+$offset) % 20; 的序列值。
      猜你喜欢
      • 2016-06-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-28
      • 2016-01-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多