如何使用PHP返回目录中的图像数?

时间:2010-09-20 05:26:40

标签: php javascript

我有一个像这样的Javascript对象:

var count = {
            table:19,
            people:39,
            places_details:84,
            story_1:18,
            story_2:6,
            story_3:11
            }

每个项目(表格,人员等)都是站点根目录 我的graphics/目录中的目录 。我想使用PHP通过计算相应目录中的JPG图像来提供数值。我想象这样的事情:

ar count = {
           table: <?php count(dir("table")) ?>,
           people: <?php count(dir("people")) ?>,
           places_details: <?php count(dir("places_details")) ?>,
           story_1: <?php count(dir("story_1")) ?>,
           story_2: <?php count(dir("story_2")) ?>,
           story_3:<?php count(dir("story_3")) ?>
           }

但需要过滤JPG并返回一个数字。什么是正确的代码?

3 个答案:

答案 0 :(得分:11)

如果要计算目录中的jpg图像数量,可以执行以下操作:

count(glob("dir/*.jpg"));

glob函数返回一个包含匹配文件的数组,然后我们对该数组使用count。

答案 1 :(得分:1)

您只需使用glob()功能检索以.jpg结尾的所有文件名并计算它们。

如果你想确保这些是真正的JPEG文件,你必须检查它们。 G。与finfo_file()

答案 2 :(得分:0)

function get_dir_structure($path, $recursive = TRUE, $ext = NULL)
{
    $return = NULL;
    if (!is_dir($path))
    {
        trigger_error('$path is not a directory!', E_USER_WARNING);
        return FALSE;
    }
    if ($handle = opendir($path))
    {
        while (FALSE !== ($item = readdir($handle)))
        {
            if ($item != '.' && $item != '..')
            {
                if (is_dir($path . $item))
                {
                    if ($recursive)
                    {
                        $return[$item] = get_dir_structure($path . $item . '/', $recursive, $ext);
                    }
                    else
                    {
                        $return[$item] = array();
                    }
                }
                else
                {
                    if ($ext != null && strrpos($item, $ext) !== FALSE)
                    {
                        $return[] = $item;
                    }
                }
            }
        }
        closedir($handle);
    }
    return $return;
}

使用该功能执行此操作:

ar count = {
    table: <?php echo count(get_dir_structure("./graphics/table/", FALSE, '.jpg')) ?>,
    people: <?php echo count(get_dir_structure("./graphics/people/", FALSE, '.jpg')) ?>,
    places_details: <?php echo  count(get_dir_structure("./graphics/places_details/", FALSE, '.jpg')) ?>,
    story_1: <?php echo count(get_dir_structure("./graphics/story_1/", FALSE, '.jpg')) ?>,
    story_2: <?php echo count(get_dir_structure("./graphics/story_2/", FALSE, '.jpg')) ?>,
    story_3: <?php echo count(get_dir_structure("./graphics/story_3/", FALSE, '.jpg')) ?>
}