'tag.htm'; break; case 'flag': $pre .= $default_pre .= 'flag.htm'; break; case 'my': $pre .= $default_pre .= 'my.htm'; break; case 'my_password': $pre .= $default_pre .= 'my_password.htm'; break; case 'my_bind': $pre .= $default_pre .= 'my_bind.htm'; break; case 'my_avatar': $pre .= $default_pre .= 'my_avatar.htm'; break; case 'home_article': $pre .= $default_pre .= 'home_article.htm'; break; case 'home_comment': $pre .= $default_pre .= 'home_comment.htm'; break; case 'user': $pre .= $default_pre .= 'user.htm'; break; case 'user_login': $pre .= $default_pre .= 'user_login.htm'; break; case 'user_create': $pre .= $default_pre .= 'user_create.htm'; break; case 'user_resetpw': $pre .= $default_pre .= 'user_resetpw.htm'; break; case 'user_resetpw_complete': $pre .= $default_pre .= 'user_resetpw_complete.htm'; break; case 'user_comment': $pre .= $default_pre .= 'user_comment.htm'; break; case 'single_page': $pre .= $default_pre .= 'single_page.htm'; break; case 'search': $pre .= $default_pre .= 'search.htm'; break; case 'operate_sticky': $pre .= $default_pre .= 'operate_sticky.htm'; break; case 'operate_close': $pre .= $default_pre .= 'operate_close.htm'; break; case 'operate_delete': $pre .= $default_pre .= 'operate_delete.htm'; break; case 'operate_move': $pre .= $default_pre .= 'operate_move.htm'; break; case '404': $pre .= $default_pre .= '404.htm'; break; case 'read_404': $pre .= $default_pre .= 'read_404.htm'; break; case 'list_404': $pre .= $default_pre .= 'list_404.htm'; break; default: $pre .= $default_pre .= theme_mode_pre(); break; } if ($config['theme']) { $conffile = APP_PATH . 'view/template/' . $config['theme'] . '/conf.json'; $json = is_file($conffile) ? xn_json_decode(file_get_contents($conffile)) : array(); } !empty($json['installed']) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . ($id ? $id . '_' : '') . $pre; (empty($path_file) || !is_file($path_file)) and $path_file = APP_PATH . 'view/template/' . $config['theme'] . '/htm/' . $pre; if (!empty($config['theme_child']) && is_array($config['theme_child'])) { foreach ($config['theme_child'] as $theme) { if (empty($theme) || is_array($theme)) continue; $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . ($id ? $id . '_' : '') . $pre; !is_file($path_file) and $path_file = APP_PATH . 'view/template/' . $theme . '/htm/' . $pre; } } !is_file($path_file) and $path_file = APP_PATH . ($dir ? 'plugin/' . $dir . '/view/htm/' : 'view/htm/') . $default_pre; return $path_file; } function theme_mode_pre($type = 0) { global $config; $mode = $config['setting']['website_mode']; $pre = ''; if (1 == $mode) { $pre .= 2 == $type ? 'portal_category.htm' : 'portal.htm'; } elseif (2 == $mode) { $pre .= 2 == $type ? 'flat_category.htm' : 'flat.htm'; } else { $pre .= 2 == $type ? 'index_category.htm' : 'index.htm'; } return $pre; } ?>javascript - How to use PHP to return a count of images in a directory? - Stack Overflow
最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - How to use PHP to return a count of images in a directory? - Stack Overflow

programmeradmin3浏览0评论

I have a Javascript object like this:

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

Each item (table, people, etc.) is a directory within my graphics/ directory at the site root. I would like to use PHP to supply the numeric values by counting the JPG images in the corresponding directory. I imagine something like this:

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")) ?>
           }

But need to filter for JPG and return a number. What's the right code?

I have a Javascript object like this:

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

Each item (table, people, etc.) is a directory within my graphics/ directory at the site root. I would like to use PHP to supply the numeric values by counting the JPG images in the corresponding directory. I imagine something like this:

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")) ?>
           }

But need to filter for JPG and return a number. What's the right code?

Share Improve this question asked Sep 20, 2010 at 5:26 Isaac LubowIsaac Lubow 3,5735 gold badges40 silver badges57 bronze badges
Add a ment  | 

3 Answers 3

Reset to default 11

If you want to count the number of jpg images in a directory you can do:

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

The glob function returns an array containing the matched files and then we use count on that array.

You could simply use the glob() function to retrieve all filenames ending in .jpg and count them.

If you want to make sure these are really JPEG files, you'll have to check them e. g. with finfo_file().

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;
}

Use that function to do this:

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')) ?>
}
发布评论

评论列表(0)

  1. 暂无评论