使用php列出目录中的图像并添加特定的类

时间:2009-12-29 02:07:05

标签: php

如何列出文件夹中的图像...(可以是任何数字)并在列表中回显它们,确保第一个li有一个“first”类,最后一个列表项有一个类“最后”就像这样...

<li class="first"><img src="flowing-rock.jpg" /></li>
<li><img src="stones.jpg" alt="Stones" /></li>
<li><img src="grass-blades.jpg" /></li>
<li><img src="ladybug.jpg" alt="Ladybug" /></li>
<li class="last"><img src="pier.jpg" alt="Pier" /></li>

任何帮助将不胜感激......

2 个答案:

答案 0 :(得分:1)

以下将选择第一个和最后一个(如果存在),分别在其余部分之前和之后打印它们。这些按scandir()按字母顺序排序。

$contents = scandir(DIRECTORY);
array_pop($contents); // Remove "."
array_pop($contents); // Remove ".."
$last = array_pop($contents); // Grab last element
$first = array_shift($contents); // Grab first element

// print elements
if (!is_null($first)) echo "<li class='first'><img src='$first' /></li>\n";
foreach ($contents as $key => $val)
    echo "<li><img src='$val' /></li>\n";
if (!is_null($last)) echo "<li class='last'><img src='$last' /></li>\n";

答案 1 :(得分:0)

您可以使用glob扫描图像文件,然后检查当前数组元素的索引:

$imgs= glob('/path/to/images/*.jpg');

for ($i=0; $i<count($imgs); $i++) {
 if ($i == 0) $class= ' class="first"';
 else if ($i == count($imgs)-1) $class= ' class="last"';
 else $class= '';
 printf("<li%s><img src=\"%s\" /></li>\n", $class, htmlentities(basename($imgs[$i])));
}

如果要保留目录名,请取出basename电话。