gpt4 book ai didi

php - 如何在文件夹中按名称搜索图像?

转载 作者:行者123 更新时间:2023-11-29 06:25:59 24 4
gpt4 key购买 nike

我有一个 MySQL 表,其中有一列“rounds”,每个“rounds”都有自己的照片。示例 round1 有从 start=380 end=385 开始的照片。这意味着它有 6 张照片,照片名称包含 380,381,382,383,384 或 385。

我使用此 PHP 代码来显示整个文件夹中的照片:

$dirname = "photos";
$images = scandir($dirname);
sort($images,SORT_NUMERIC);
krsort($images);
$ignore = Array(".", "..");

foreach($images as $curimg){
if(!in_array($curimg, $ignore)) {

echo "<p align=\"center\">Photo $curimg</p>";
echo "<img class=\"img-responsive\" src=\"". $dirname . '/' . $curimg ."\">";
}
}

我需要一些帮助来调整我的代码,因为它只搜索名称为 380,381,382,383,384 或 385 的文件夹中的照片。

我认为下面的代码可以做到,但我不知道如何使用第一个代码进行调整。

$start=380;
$end=385;

for($i=$start; $i<=$end; $i++) {
echo "$i<br>";
}

最佳答案

这看起来像是 glob 的工作,它返回与指定模式匹配的文件名数组。我知道刚刚发布的其他答案,但让我们提供一个替代正则表达式的方法。

根据文档页面上的置顶评论,你可以做的是这样的:

<?php
$dirname = "photos";
$filenames = glob("$dirname/*{380,381,382,383,384,385}*", GLOB_BRACE);

foreach ($filenames as $filename)
{
echo $filename . "<br />";
}
?>

GLOB_BRACE 选项允许您在大括号中指定值列表,并且它们周围的星号允许这些数字出现在文件名中的任何位置。然后,您可以遍历返回的数组并使用 $filename 执行任何您想做的事情。

您可以使用您的示例 for 循环来自动构建一个字符串以传递给 glob

这是我在我创建的测试目录上运行它时的输出:

photos/380.zip
photos/asdf382ghj.txt
photos/385.bmp

请注意,我放入其中的另一个文件 a386b.xlsx 与模式不匹配,因此没有出现在列表中。

关于php - 如何在文件夹中按名称搜索图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30974003/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com