php函数无法从目录中提取所有图像

时间:2014-07-21 20:12:18

标签: php

我的代码没有提取目录中的所有文件,我不知道为什么,我没有任何扩展限制或任何东西,确定所以这是我的代码我做错了什么?有jpg和png扩展的24个图像,当我print_r($arr)时只检测到13个 :

<?php
function loadimages($dir) {     
    if(substr($dir, -1) != "/") $dir .= "/";
    $rootdir = $_SERVER["DOCUMENT_ROOT"];
    $fulldir = $rootdir."/".$dir;
    $dir = opendir($fulldir);   
    $arr =  array();
    while(readdir($dir)) {              
        $arr[] = readdir($dir);
    }   
    echo  "<h1>".count($arr). "</h1><br />";
    foreach($arr as $img) {
        echo "<img src='/pages/course-images/{$img}' />";
    }
}   
loadimages("pages/course-images");
?>

1 个答案:

答案 0 :(得分:1)

我会改用glob()

$images = glob('*.{png,jpg}', GLOB_BRACE);
print_r($images);

http://php.net/manual/en/function.glob.php

它不起作用,因为while(readdir($dir)),然后您读取一个值并向前跳过一步到下一个文件。正确的方法就是这样,而且它是手册中的解释。

while(false !== ($entry = readdir($dir))) {
      $arr[] =  $entry;
}

http://php.net/manual/en/function.readdir.php

但是glob更好,现在它只返回图像。