列出未列出内容的目录中的所有图像


List all images in a directory not listing contents

我正在使用以下内容列出目录中的所有jpg图像,但由于某些原因,它不起作用,我认为我的一些和.s可能放错了地方,我觉得我有点困惑:-s。

<?php
if ($handle = opendir('images/photobanner')) {
while (false !== ($file = readdir($handle)))
{
    if ($file != "." && $file != ".." && strtolower(substr($file, strrpos($file, '.') + 1)) == 'jpg')
    {
        $thelist .= '<li><a href="'.$file.'">'<img src="'.$file.'.'"/>'</a></li>';
    }
}
closedir($handle);
}
?>
<P>List of files:</p>
<UL>
<P><?=$thelist?></p>
</UL>

如下更改连接lins。

    $thelist .= '<li><a href="'.$file.'"><img src="'.$file.'"/></a></li>';

并且在开始循环之前声明$thelist,它在作用域

中可用

您的变量$thelist仅在while循环中已知。

如果你把开头改成这样,它应该会起作用:

<?php
$thelist = "";
if ($handle = opendir('images/photobanner')) {

你的问题的技术术语是"范围"。

也许glob()最适合你,你有一些额外的':

$thelist = '';
foreach (glob("images/photobanner/*.jpg") as $file) {
    $thelist .= '<li><a href="'.$file.'"><img src="'.$file.'"/></a></li>';
}
echo $thelist;