显示文件夹中的特定图像

时间:2016-06-06 14:33:09

标签: php html

我正在尝试将文件夹中的特定图片插入我的products。但是使用我现在的代码,它会显示所有产品上文件夹中的所有图像。我如何只为每个产品显示1个特定图像?

$dir = "pictures/productimg/";
if ($opendir = opendir($dir)) {
    while (($file = readdir($opendir)) !== false) {
        if ($file != "." && $file != "..") {
            echo "<div class='productimg'>";
            echo "<img src='$dir/$file'/>";
            echo "</div>";
        }
    }
}

2 个答案:

答案 0 :(得分:0)

您可以使用

array_slice(glob('/path/to/dir/*.*'), 0, 1);

请参阅How do I find the first 5 files in a directory with PHP?

答案 1 :(得分:0)

如果将图像文件名存储在与产品有关系的数据库(推荐)中,假设您可能希望每个产品有多个图像(推荐),则可以创建一个新表,例如: product_images字段为product_id&amp; file_name,在product_id上创建外键以指向产品ID,例如products.id。现在您可以通过执行SELECT file_name FROM product_images WHERE product_id = xx简单地获取产品的图像,然后检查图像目录中是否存在该文件,如果存在,则通过它现在已知的名称拉出图像,因为您已获取它来自数据库。

编辑:另请注意,您应该确保文件名是唯一的,最好的方法是在其中包含产品ID或至少包含微时间戳。

提示:如果一个实体属于另一个实体,例如图像属于产品,您几乎肯定会使用数据库来存储该关系。它将使一切变得如此简单,合乎逻辑和可维护。