因为依赖图片的高度撑起首页的文章列表部分的容器高度,所以对图片的高度有严格的要求。为了确保尺寸统一,所以单独做了一套缩略图。宽高统一为200x150,随着文章内容的逐渐宽泛,相关缩略图的数量也逐渐增加了,所以想做一个辅助页面,列出某个文件夹中所有的图片以及图片的名称。
scandir函数
scandir函数的效果有点儿类似cmd中的dir命令,在linux上则是ls命令,作用都是给出当前文件夹中的所有文件以及目录,它的语法格式如下:
scandir(directory,sorting_order,context);
参数详解
| 参数 | 描述 | 
|---|---|
| directory | 必需。规定要扫描的目录; | 
| sorting_order | 可选。规定排列顺序,默认是 0,表示按字母升序排列;如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列;如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果; | 
| context | 可选。规定目录句柄的环境,context 是可修改目录流的行为的一套选项。 | 
scandir的实例
顺序打印images文件的目录:
<?php
$dir = "/images/";
$res = scandir($dir);
print_r($res);
?>
输出结果如下:
Array
(
[0] => .
[1] => ..
[2] => cat.gif
[3] => dog.gif
[4] => horse.gif
[5] => myimages
)
实现逆序打印images文件的目录:
<?php
$dir = "/images/";
$res = scandir($dir,1);
print_r($res);
?>
简单去除结果中的"."
<?php
$directory = '/path/to/my/directory';
$scanned_directory = array_diff(scandir($directory), array('..', '.'));
?>
同时遍历子目录中的文件
<?php 
function dirToArray($dir) { 
   
   $result = array(); 
   $cdir = scandir($dir); 
   foreach ($cdir as $key => $value) 
   { 
      if (!in_array($value,array(".",".."))) 
      { 
         if (is_dir($dir . DIRECTORY_SEPARATOR . $value)) 
         { 
            $result[$value] = dirToArray($dir . DIRECTORY_SEPARATOR . $value); 
         } 
         else 
         { 
            $result[] = $value; 
         } 
      } 
   } 
   
   return $result; 
} 
?> 
示例输出:
Array 
( 
   [subdir1] => Array 
   ( 
      [0] => file1.txt 
      [subsubdir] => Array 
      ( 
         [0] => file2.txt 
         [1] => file3.txt 
      ) 
   ) 
   [subdir2] => Array 
   ( 
    [0] => file4.txt 
   } 
)
 
          

