【问题标题】:Identify folder with PHP用 PHP 识别文件夹
【发布时间】:2011-07-29 05:32:11
【问题描述】:

我正在用 PHP 制作一个图片库脚本,其中包括一个评论系统。 该脚本的基本功能是读取文件夹名称并显示包含文件夹名称的图库 名称作为标题和图像。

问题是,用mysql做的评论系统会保存这样的评论:

ID |文件夹 |图片

这很好用,但是当我更改文件夹的名称时,脚本不起作用,因为在 Mysql 表中设置了错误的文件夹名称。 此外,当我只保存图像的名称时,可能会有两张不同的图片 同名文件夹。

是否可以不使用名称来识别文件夹?

//注意:

感谢您的帮助,我想我找到了解决方案。现在我只保存图像的 md5 哈希并将其保存在数据库而不是文件夹名称中。

【问题讨论】:

  • 为什么要更改文件夹名称?

标签: php image gallery directory identify


【解决方案1】:

我想最好使用另一个表来保存文件夹 ID 及其名称 文件夹ID |文件夹名称 类似的东西。依赖文件夹名称不是一个好习惯

【讨论】:

  • 如果更改文件夹名称?
  • 也可以在表格中更改。使用一些简单的不可更改的识别系统总是更好
  • 那么他可能应该使用相同的 PHP 脚本来更改目录名称。
  • 这只是一个选项。还有一个选项可以对文件夹名称和许多其他名称使用 base64 编码/解码。但我仍然喜欢更好地依赖数据库,取决于自己的喜好
【解决方案2】:

没有。您需要将文件系统与数据库同步。每当您重命名/删除/编辑文件夹时,请更新其在 mysql 数据库中的条目。

【讨论】:

    【解决方案3】:

    一种可能是使用图像内容的校验和作为唯一标识符。只要内容没有改变,那么你应该没问题。至于识别文件夹名称的变化,我想不出任何巧妙的方法来检测这一点,除非您使用哈希值,它是其中包含的文件的函数。

    老实说,我认为重新考虑您在数据库中存储/识别这些项目的方式会很好。

    【讨论】:

      【解决方案4】:

      你总是可以这样做:

      创建 3 个表:

      • 画廊 -> 与列 (id,title)
      • 文件 -> 带有列 (id, 图库、名称、文件名)
      • cmets -> 带有列(id, file_id,评论)

      然后,您将在“画廊”表中创建所有画廊,并使用它们的名称。创建图库时,您会将要显示的所有图像放在一个文件夹中,例如 uploads/。然后,您将在数据库中插入文件的名称(也可能生成随机文件名)以及它的真实名称。例如,“海滩上的海豚”可以指向上传文件夹中的 dolphins1234142.png。然后,您所有的 cmets 都将位于 cmets 表中,您将在其中设置与 files 表的关系。这将允许您为某个图像拥有 cmets。

      只是我对画廊系统的看法,希望它有意义。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-12-05
        • 1970-01-01
        • 2021-12-10
        • 1970-01-01
        • 2021-06-30
        • 1970-01-01
        • 2015-01-13
        • 2021-07-01
        相关资源
        最近更新 更多