用于插入图像的PHP脚本

时间:2014-03-27 05:55:02

标签: php

我从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...';
}
?>

1 个答案:

答案 0 :(得分:0)

在第一个脚本中,你打开dir'upload / images'但是如果文件夹是空的,那么经过所有文件的时间永远不会执行,$ files变量永远不会被初始化,这就是为什么你得到的错误。

尝试在循环之前初始化$ files变量,如下所示:

$files = array()

在第二个中,当您回显图像时,您正在使用而不是,因为我认为您只是“/&gt;&lt; ; / li&gt; 打印。尝试用替换

修改

尝试像这样调用glob:

glob( $image_dir."*.{jpg,png,jpeg}", GLOB_BRACE );