对文件名范围使用file_exists的简洁方法


Concise method of using file_exists for a range of filenames

我使用file_exists来确定某些图像文件是否在指定的目录中,如果是,则在图像旋转器中显示它们。它工作得很好,但对于它所实现的功能来说,代码似乎非常冗长。有没有更好的办法?

现在我有:

<?php
        if (file_exists($reg_photo_1_f)) {
        echo "<li>";
        echo "<a href=". $reg_photo_1_f .">"."</a>";
        echo "</li>";
        }
        if (file_exists($reg_photo_2_f)) {
        echo "<li>";
        echo "<a href=". $reg_photo_2_f .">"."</a>";
        echo "</li>";
        }
        if (file_exists($reg_photo_3_f)) {
        echo "<li>";
        echo "<a href=". $reg_photo_3_f .">"."</a>";
        echo "</li>";
        }
        if (file_exists($reg_photo_4_f)) {
        echo "<li>";
        echo "<a href=". $reg_photo_4_f .">"."</a>";
        echo "</li>";
        }
        if (file_exists($reg_photo_5_f)) {
        echo "<li>";
        echo "<a href=". $reg_photo_5_f .">"."</a>";
        echo "</li>";
        }
        ?>

其中每个$reg_photo_x_f是图像路径。我希望有一种方法,我可以调整这个代码,使它可以循环,直到所有的图像被发现存在。图像名称本身是从另一个页面生成的哈希值,因此显然不是连续的。

创建哈希的页面以php变量的形式将与页面相关的值与预定义的"salt"相结合,以便图像名称几乎以与数据库中匹配哈希密码相同的方式匹配。例如,对于$reg_photo_1_f,我在同一页面上有以下代码:

$reg_photo_1 = sha1("$bh".PHOTO_REG_1);
$reg_photo_1_f = $reg_photo_root.$reg_photo_1.".jpg";

…其中$bh是与用户所在页面相关的变量,PHOTO_REG_1是"salt"。

当然,也有更好的方法来命名图像,但这是我能想到的最简单的方法来处理动态页面

<?php
$files = glob('*.jpg');
foreach($files as $file) {
        echo "<li>";
        echo "<a href=". $file.">"."</a>";
        echo "</li>";
}
?>