因为依赖图片的高度撑起首页的文章列表部分的容器高度,所以对图片的高度有严格的要求。为了确保尺寸统一,所以单独做了一套缩略图。宽高统一为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
}
)