我只是不能让这个工作出错在这里?
$files = scandir('gallery/');
if ($files !== false)
{
foreach($files as $f) {
if ($f == '..' || $f == '.')
continue;
echo '<li><img src="gallery/'.$f.'" alt="'.$f.'" title=""></li>'."\n";
}
}
该文件夹位于名为“gallery”的根文件夹中。图像在里面..
我总是收到这个错误:
警告:第101行“MYDOCUMENT.PHP”中为foreach()提供的参数无效。
答案 0 :(得分:2)
这适用于我......:
<?php
$files = scandir('gallery/');
if ($files !== false) {
foreach($files as $f) {
if ($f == '..' || $f == '.') continue;
echo $f . "<br>\n";
}
}
?>
这与你的代码完全相同......所以请查看“gallery /”目录内容......
答案 1 :(得分:2)
<?php
$files = scandir('gallery/');
if ($files !== false)
{
foreach(is_array($files) as $f) {
if ($f == '..' || $f == '.')
?>
<li><img src="<?php echo 'gallery/'.$f ?>" alt="<?php echo $f ?>" title="">
<?php
}
}
?>
答案 2 :(得分:1)
将foreach改为:
foreach((array)$files as $f)
代码可能是:
$files = scandir('gallery/');
if ($files !== false)
{
foreach((array)$files as $f) {
if ($f == '..' || $f == '.')
continue;
echo '<li><img src="gallery/'.$f.'" alt="'.$f.'" title=""></li>'."\n";
}
}
答案 3 :(得分:1)
您不应该使用以下命令验证数组:
if ($files !== false)
但是这样做:
if (is_array($files) && count($files) > 0) {
否则你会收到类似这样的警告。
[编辑] 并考虑像一个人说的那样使用glob。 这将适用于该功能。
示例:
if (is_array($files) && count($files) > 0) {
foreach(glob('gallery/*.{jpeg,gif,png}', GLOB_BRACE)) {
// code here
}
}