我正在使用以下功能显示我的图库图片:
<?php
//function call
return showImages();
//function definition
function showImages(){
$out = "<h1>Image Gallery</h1>";
$out .= "<ul id='images'>";
$folder = "img";
$filesInFolder = new DirectoryIterator($folder);
$imgnumber = 1;
while ($filesInFolder->valid()){
$file = $filesInFolder->current();
$filename = $file->getFilename();
$src = "$folder/$filename";
$fileInfo = new Finfo( FILEINFO_MIME_TYPE );
$mimeType = $fileInfo->file($src);
if ($mimeType === 'image/jpeg'){
$out.= "<li><img id='imgnumber$imgnumber' src='$src' /></li>";
}
$filesInFolder->next();
$imgnumber = $imgnumber + 1;
}
$out .= "</ul>";
return $out;
}
预期的结果是每次迭代运行时 img id 增加1。我的问题是第一张图片的ID为 imgnumber4 。这是我的结果:
<h1>Image Gallery</h1>
<ul id='images'>
<li><img id='imgnumber4' src='img/1.jpg' /></li>
<li><img id='imgnumber5' src='img/10.jpg' /></li>
<li><img id='imgnumber6' src='img/11.jpg' /></li>
<li><img id='imgnumber7' src='img/12.jpg' /></li>
<li><img id='imgnumber8' src='img/13.jpg' /></li>
<li><img id='imgnumber9' src='img/18.jpg' /></li>
<li><img id='imgnumber10' src='img/2.jpg' /></li>
<li><img id='imgnumber11' src='img/27.jpg' /></li>
<li><img id='imgnumber12' src='img/3.jpg' /></li>
<li><img id='imgnumber13' src='img/4.jpg' /></li>
<li><img id='imgnumber14' src='img/5.jpg' /></li>
</ul>
你能告诉我它为什么从4号开始而不是1号吗?我已经将变量$ imgnumber从开始设置为1,所以我不知道它为什么跳到4 ...
答案 0 :(得分:3)
它是你的'if'语句 - 可能是有些文件不是'image / jpeg'。 只需放置
行即可$imgnumber = $imgnumber + 1;
if语句中的