将 file_exists 用于一系列文件名的简明方法
Posted
技术标签:
【中文标题】将 file_exists 用于一系列文件名的简明方法【英文标题】:Concise method of using file_exists for a range of filenames 【发布时间】:2013-05-14 02:00:39 【问题描述】:我正在使用 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 是“盐”。
当然还有更好的方法来命名图像,但这是我能想到的最简单的方法来处理动态页面。
【问题讨论】:
不要为每个文件名使用单独的变量,而是将它们全部放在一个数组中。然后将需要一个简单的循环来处理所有这些。 【参考方案1】:<?php
$files = glob('*.jpg');
foreach($files as $file)
echo "<li>";
echo "<a href=". $file.">"."</a>";
echo "</li>";
?>
【讨论】:
如果您使用glob()
,则无需使用file_exists()
:)以上是关于将 file_exists 用于一系列文件名的简明方法的主要内容,如果未能解决你的问题,请参考以下文章