【问题标题】:EDIT: I need to generate a string of 7 chars that is based on the id of the row编辑:我需要生成一个基于行 ID 的 7 个字符的字符串
【发布时间】:2010-05-12 19:31:27
【问题描述】:

编辑:我需要生成一个基于行 ID 的 7 个字符的字符串。所以知道图像的id和密钥,我应该得到生成的字符串。

字符串必须包含从“a”到“z”的字符和从 0 到 9 的数字。

我有一个目录,其中包含这样的照片

dir/p3/i2/s21/thumb.jpg

生成的字符串是p3i2s21,然后用来计算图片的路径。

编辑: 目前我正在使用图像的 id: 编号 = 55 然后我修改并得到 路径 = 000000055 然后路径=“000/000/055” 然后路径=“000/000/055/thumb.jpg”

可以使用了!

现在我想要更聪明的东西,因为很容易从服务器追踪所有图像,因为 id 是连续的:1、2、3、4、5、6...

所以我必须考虑从 55 创建一个长度为 7 个字符且不会与其他数字重叠的字符串。我什至可以将 55 转换为 0000055,然后使用秘密字符串将其转换为 7 字符长度的字符串。然后当我得到秘密字符串和 id 时,我想取回那个 7 字符长度的字符串。

这可能吗?我在考虑 hases 但他们只使用 0-9 和 a-e 并且是更多的字符.. :s

【问题讨论】:

  • 等什么?抱歉,我需要更清楚一点,你在这里问什么?
  • 好的,我会在主要问题中解释
  • 看看这个问题,它可能会给你一些想法。 stackoverflow.com/questions/890907/…

标签: code-generation


【解决方案1】:

我认为您需要使用数据库来执行此操作。您可以生成随机的 7 个字符字符串并将它们与它们映射到的路径一起存储在一个表中。

除此之外,确实没有简单的方法可以可靠地采用任意路径,将其“压缩”为 7 个字符,然后能够从这七个字符中重新获取路径。

【讨论】:

  • 我在主要问题中解释得更好
【解决方案2】:

我会在您的表中添加一个新列来存储 GUID 值。这样,您就有了一个非连续的标识符。

如果您不能使用 GUID 并且它确实需要 7 个字符长......好吧,我要做的就是生成 GUID,取(第一个/最后一个)7 个字符,确保它是唯一的,并且保存。如果它不是唯一的,我会生成另一个 GUID,直到它是。

顺便说一句,这与埃里克的回答非常相似;我只是想特别提一下 GUID。

【讨论】:

  • 是的,当然会在表中添加另一列,当然我正在使用数据库,唯一的问题是获取那个 7char 字符串...我会检查它的 GUID
  • @Totty - 如果您告诉我们您使用的是什么数据库系统,我相信我们可以为您提供生成唯一/随机 7 字符串的功能。
猜你喜欢
  • 2012-11-26
  • 1970-01-01
  • 2014-08-07
  • 2020-07-30
  • 2021-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-20
相关资源
最近更新 更多