使用glob动态显示具有不适用于PHP的不同扩展名的图像

时间:2015-08-22 03:12:03

标签: php image foreach glob

我的第一个问题...... 我正试图从“fotorama”div内的文件夹动态显示图像。使用此代码:

<?php
$dir = "/example/images/category/";
$images = glob($dir.'*.{JPG,jpg,gif,png,bmp}', GLOB_BRACE);
foreach ($images as $image) {
echo "<img src='".$dir.".".$image."' />";
};?>

我知道以前曾经问过这件事;但在阅读了我发现的所有内容之后:例如(hereherehere)以及许多其他“类似”问题。 他们都推荐几乎相同的代码(彼此之间的语法略有不同) 我已经尝试了我找到的这个代码的每个变体,但它什么都没显示。

我知道($ dir)很好,因为当我尝试: echo '<img src="'.$dir."img1.jpg".'">';它显示特定图像。问题必须在glob部分,因为当我在foreach循环之前使用var_dump($images);时,它会显示:array(0){}。

我不知道问题是什么......

编辑: 在Sam的回答的帮助下,代码现在有效,我发现我忘了纠正GLOB_BRACE部分的内容。更正的代码应该是这样的:

<?php
$dir = "c:/xampp/htdocs/example/images/category/";
$images = glob($dir.'*.{JPG,jpg,gif,png,bmp}', GLOB_BRACE);
foreach ($images as $image) {
echo "<img src='".$image."' />";
};
?>

为了将来参考,Xampp localhost上glob()函数的工作路径为:C:/xampp/htdocs/your-folder-structure

1 个答案:

答案 0 :(得分:1)

glob()查找文件系统路径,而图片代码的src属性指向url位置,可能与您的docroot相关(但可能在任何位置,具体取决于您的路由规则)。

因此,例如,如果/example/images/网址指向文件系统上的/var/www/example/images/,则您需要这样做:

<?php
$dir = "/var/www/example/images/category/";
$url = "/example/images/category/";
$images = glob($dir.'*.{JPG,jpg,gif,png,bmp}', GLOB_BRACE);
foreach ($images as $image) {
    echo "<img src='{$url}{$image}' />";
};?>

您需要确定文件系统中该目录在特定情况下的位置。