我使用以下内容列出目录中的所有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>
答案 0 :(得分:2)
更改连接线,如下所示。
$thelist .= '<li><a href="'.$file.'"><img src="'.$file.'"/></a></li>';
在开始循环声明$thelist
之前,它在范围
答案 1 :(得分:0)
您的变量$thelist
仅在您的while循环中已知。
如果您将开头改为此,则应该有效:
<?php
$thelist = "";
if ($handle = opendir('images/photobanner')) {
您的问题的技术术语是“范围”。
答案 2 :(得分:0)
也许glob()
最适合您,而且您还有一些额外的'
:
$thelist = '';
foreach (glob("images/photobanner/*.jpg") as $file) {
$thelist .= '<li><a href="'.$file.'"><img src="'.$file.'"/></a></li>';
}
echo $thelist;