我试图用文件夹中的相同键显示所有图像。
图像的存储方式如下:
34526Image1.jpg
34526Image2.jpg
34526Image3.jpg
34526Image4.jpg
etc etc....
所以关键是图像名称的第一部分(随机数),在这种情况下是 34526 。
我尝试在PHP中使用glob()
函数,但我只获得了34526Image1.jpg
的第一张图片。
我的glob()
代码是这样的:
<?php
foreach(glob('../my-images/') as $image)
$i = 1;
{
$pic_list .= '<a id="example1" href="'.$image.''.$randKey.'Image'.$i++.'.jpg"><img alt="example1" src="../my-images/'.$randKey.'Image'.$i++.'.jpg" /></a>';
}
echo $pic_list ;
?>
有人可以就此提出建议吗?
答案 0 :(得分:2)
你的foreach语句中有错误,对于你只执行1个代码行$i = 1;
的文件夹中的每个文件,;
之后的所有内容只执行一次,在foreach的所有迭代之后
你需要使用适当的foreach:
$files = glob('../my-images/'); // need to define proper mask here to get only files with $randKey
$i = 1;
foreach($files as $image)
{
$pic_list .= '<a id="example1" href="'.$image.''.$randKey.'Image'.$i.'.jpg">';
$pic_list .= '<img alt="example1" src="../my-images/'.$randKey.'Image'.$i.'.jpg" />';
$pic_list .= '</a>';
$i++;
}
答案 1 :(得分:2)
您对glob
的号码不包含任何模式。您可以对*
的任何字符使用通配符,或使用?
使用单个字符。也可以是例如[0-9]
的范围。在您的情况下,您希望所有以随机数开头的所有内容(由$randKey
确定,后跟单词Image
,计数器值和.jpg
。因此,您所要做的就是使用通配符作为计数器值,如示例34526Image*.jpg
中所示。
这导致以下代码
<?php
$pic_list = '';
$id = 0;
foreach(glob('../my-images/'.$randKey.'Image*.jpg') as $image) {
$pic_list .= '<a id="example'.++$id.'" href="'.$image.'"><img alt="example'.$id.'" src="'.$image.'" /></a>';
}
echo $pic_list;
?>