PHP简单实现图片库,获取目录下的文件
scandir() 函数返回指定目录中的文件和目录的数组,这里我主要使用scandir实现图片库。
语法
scandir(directory,sorting_order,context);
参数 | 描述 |
---|---|
directory | 必需。规定要扫描的目录。 |
sorting_order | 可选。规定排列顺序。默认是 0,表示按字母升序排列。如果设置为 SCANDIR_SORT_DESCENDING 或者 1,则表示按字母降序排列。如果设置为 SCANDIR_SORT_NONE,则返回未排列的结果。 |
context | 可选。规定目录句柄的环境。context 是可修改目录流的行为的一套选项。 |
//图片库 public function photo_gallery(){ $C_Patch=$_SERVER['DOCUMENT_ROOT']; //获取网站根目录 $hostdir=$C_Patch.'/uploads'; //要读取的文件夹 /*$filesnames = scandir($hostdir); //得到所有的文件 $url = $_SERVER["HTTP_HOST"];//获取网址*/ //获取所有图片 $files = array(); $array = $this->getDir2($hostdir, $files); return json($array); } //获取目录或子目录的图片 public function getDir2($path,&$array) { if (is_dir($path)) { $dir = array_reverse(scandir($path));//获取“/uploads”目录下的所有文件,并进行倒序 foreach ($dir as $value) { //目录名:$value,路径:$path $sub_path = $path . '/' . $value; //scandir默认有“.”,“..”\ if ($value == '.' || $value == '..') { continue; } //判断是否目录 else if (is_dir($sub_path)) { //排除不需要的目录 if (preg_match("/([\x81-\xfe][\x40-\xfe])/", $sub_path, $match) || $value == "payUpload") { continue; } //循环,获取子目录的文件 $this->getDir2($sub_path, $array); } else { //.$path:路径,$value:文件名 $image_arr2 = explode(".",$value);//获取后缀名 $path_arr = explode('uploads/',$path);//获取当前文件所在的文件夹 if (!empty($image_arr2[1])) { //获取需要的文件,判断是否图片 if ($image_arr2[1] == "gif" || $image_arr2[1] == "png" || $image_arr2[1] == "jpg" || $image_arr2[1] == "jpeg" || $image_arr2[1] == "bmp") { // $array[end($path_arr)][] = $value; $array[] = end($path_arr).'/'.$value; } } } } } return $array; }
php获取目录下所有文件及目录(多种方法):https://www.jb51.net/article/161203.htm