我从stackoverflow db中删除了这两个脚本,用于从文件夹插入图像。两者都是'正常工作一半。
<?php
$image_dir = 'uploads/images/';
$per_column = 10;
$validExt = array(
'png' => 'image/png',
'jpeg' => 'image/jpeg',
'jpg' => 'image/jpg',
'gif' => 'image/gif',
);
if ($handle = opendir($image_dir)) {
while (false !== ($file = readdir($handle)))
{
$ext = strtolower(substr($file, -3));
if (isset($validExt[$ext]))
{
$stats = stat($image_dir.$file);
$files[$stats['mtime']] = $file;
}
}
closedir($handle);
}
$count = 0;
krsort($files);
$cnt = count($files);
if($cnt)
{
foreach($files as $file)
{
$count++;
echo '<li><img src="' . $image_dir . $file . '" width="20" height="20" title="' . substr($file, 0, -4) . '"/></li>'.chr(10);
if($count % $per_column == 0) { echo '<div class="clear"></div>'; }
}
}
else
{
echo 'no pictures yet...';
}
?>
这个输出文件,但是当文件夹中没有图像时,我收到此错误。 '警告:krsort()期望参数1为数组,给定'
为null下面的这个不会输出文件夹中的图像。我也没有收到错误消息。如果文件夹是空的,它确实回显“没有图片......”
<?php
$image_dir = 'uploads/images/';
$per_column = 10;
$files = glob($image_dir . "*.jpg|png|gif|jpeg");
if(count($files))
{
foreach($files as $file)
{
$count++;
echo '<li><img src="',$image_dir,$file,'" width="20" height="20" title="',$file,'"/></li>';
if($count % $per_column == 0) { echo '<div class="clear"></div>'; }
}
}
else
{
echo 'no pictures yet...';
}
?>
答案 0 :(得分:0)
在第一个脚本中,你打开dir'upload / images'但是如果文件夹是空的,那么经过所有文件的时间永远不会执行,$ files变量永远不会被初始化,这就是为什么你得到的错误。
尝试在循环之前初始化$ files变量,如下所示:
$files = array()
在第二个中,当您回显图像时,您正在使用,而不是。,因为我认为您只是“/&gt;&lt; ; / li&gt; 打印。尝试用替换,。
修改强>
尝试像这样调用glob:
glob( $image_dir."*.{jpg,png,jpeg}", GLOB_BRACE );