0

我正在使用以下内容列出目录中的所有 jpg 图像,但由于某种原因它不起作用,我认为我的一些 's 和 .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>
4

3 回答 3

2

如下更改连接的 lins。

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

并且在开始循环声明之前$thelist,它在范围内可用

于 2012-09-11T09:50:42.937 回答
0

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

$thelist = '';
foreach (glob("images/photobanner/*.jpg") as $file) {
    $thelist .= '<li><a href="'.$file.'"><img src="'.$file.'"/></a></li>';
}
echo $thelist;
于 2012-09-11T09:51:36.153 回答
0

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

如果你改变你的开始,它应该可以工作:

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

您的问题的技术术语是“范围”。

于 2012-09-11T09:48:14.737 回答