1

我将从头开始构建一个 PHP 照片库,但我正在尝试确定执行此操作的最佳方法。我计划将所有照片上传到一个文件夹中,因为我不需要创建单独的相册,所以不会有子文件夹。

我想出了两种不同的方法来显示图片。我的第一种方法是将所有图片名称存储在 MySQL 数据库中,然后使用 aSELECT * FROM pictures并让它循环并回显HTML <img>每张图片的标签。

另一种方法是仅使用 PHP 来获取图片目录中所有文件的列表,并让它循环执行与HTML <img>上面提到的相同的 echo 标记。

使用这两种方法有什么优点或缺点吗?也许有人有更好的解决方案,我只是出于学习目的从头开始制作一个。

4

3 回答 3

2

如果您这样做只是为了学习目的并使用大约 100 张照片,我会说您应该首先将数据存储在目录中并显示它们。这将使您能够更多地关注演示文稿布局。您可以构建一个类来提取图像。

一旦你的布局看起来很棒,你可以扩展你的数据库来存储你的图像,编写一个脚本来将图片迁移到数据库表中,并扩展类来提取图像,以便它们来自数据库而不是文件系统。这将使您的注意力集中在抽象操作层,进行数据库更改和...版本控制您的更改(我推荐 git)。

这样,您可以模拟最初需求很少(文件系统上的图片)并且他们的需求增长(数据库中的图片)的客户,以及您将如何管理现实生活中的变化。向前迈出一步,您可以在 GitHub 上对您的旅程进行版本控制。该调用允许 StackOverflow 用户分叉您的存储库并帮助您更改代码。

于 2013-09-08T16:18:11.330 回答
1

我建议将所有名称存储在数据库中!

优点:

  • 如果您以后计划创建其他表,它允许建立关系。

  • 它(直接)允许排序

  • 它(直接)允许过滤

缺点:

  • 如果您编辑或删除其中之一,您必须同步文件名和表格。

您还可以将图像存储在数据库中。此选项是否值得推荐取决于您的用例和访问者数量。有关该主题的更多信息,请参见此处:PHP 是否在 MySQL 中存储图像?

于 2013-09-08T16:05:04.287 回答
1

我会使用数据库方法。如果您决定为每张图片添加标题、描述、标签或评论,您将更容易实现它。另外,您可以排序。

于 2013-09-08T16:05:19.330 回答