/**
02.
* 在使用之前,我們先大致了解一下glob有什麼特別的參數可以使用。
03.
*
04.
* GLOB_MARK - 若檔案為資料夾,在回傳檔案路徑的最後面加上斜線""
05.
* GLOB_NOSORT - 保持檔案路徑在原資料夾的出現順序(不重新排序)。※筆者在Win環境看不出差異
06.
* GLOB_NOCHECK - 若找不到匹配的檔案路徑,回傳匹配的條件字串
07.
* GLOB_NOESCAPE - 不要將反斜線視為跳脫字元(※筆者在Win環境下看不出差異)
08.
* GLOB_BRACE - 將 {a,b,c} 視為搜尋 'a', 'b', 或 'c'
09.
* GLOB_ONLYDIR - 只列出資料夾路徑
10.
* GLOB_ERR - 發生讀取錯誤時停止動作(像是無法讀取的資料夾),預設是「忽略錯誤」
11.
**/
01.
// 搜尋 path 資料夾中,所以資料夾的路徑,並在最後加上斜線 ""
02.
$dirs
=
array_filter
(
glob
(
'/path/*'
,GLOB_MARK),
'is_dir'
);
03.
04.
// 同上的結果(所以資料夾的路徑),而且此方法比較標準效能也較快
05.
// (※不同這邊要注意的是,GLOB_ONLYDIR 僅適用於非使用 GUN C library 的系統
06.
// 所以當不支援的時候,可以改用第一種方法)
07.
$dirs
=
glob
(
'/path/*'
,GLOB_ONLYDIR | GLOB_MARK);
08.
09.
// 搜尋path資料夾中,所有的檔案的路徑
10.
// (※筆者很好奇,=3=既然都有 GLOB_ONLYDIR 了,為什麼不多個 GLOB_ONLYFILE )
11.
$files
=
array_filter
(
glob
(
'/path/*'
),
'is_file'
);
12.
13.
// 搜尋 path 資料夾中所有檔名字串結尾為 .gif、.jpg、.png 檔案路徑
14.
//(※這邊要注意,若副檔名大小寫不一樣,會搜尋不到,像 .GIF 、 .gIf 或 .giF 都會被忽略掉)
15.
$images
=
glob
(
"/path/{*.gif,*.jpg,*.png}"
, GLOB_BRACE);
16.
17.
// 搜尋 path 資料夾中所有檔名字串結尾非 "_s.jpg" 檔案路徑
18.
$filter
=
array_filter
(
glob
(
'img/*'
),
function
(
$ele
){
return
!
stristr
(
$ele
,
'_s.jpg'
);});
19.
20.
// 搜尋 path 中所有含有 views 資料夾的資料夾
21.
$dirs
=
glob
(
'/path/*/views'
, GLOB_ONLYDIR);
22.
23.
//以遞迴的方式,取得深層資料夾的所有路徑
24.
function
listdirs(
$dir
) {
25.
static
$alldirs
=
array
();
26.
$dirs
=
glob
(
$dir
.
'/*'
, GLOB_ONLYDIR);
27.
if
(
count
(
$dirs
) > 0) {
28.
foreach
(
$dirs
as
$d
)
$alldirs
[] =
$d
;
29.
}
30.
foreach
(
$dirs
as
$dir
) listdirs(
$dir
);
31.
return
$alldirs
;
32.
}
轉自
http://liaosankai.pixnet.net/blog/post/29021189-%E4%BD%BF%E7%94%A8-glob-%E6%90%9C%E5%B0%8B%E6%89%80%E6%9C%89%E6%AA%94%E6%A1%88%E8%B7%AF%E5%BE%91
如果文章對您很有幫助
請我喝杯咖啡吧
Bitcoin 比特幣錢包:38ieWXhURt27br9XrDoCeo4eruzKyi8QKs
Post Views: 2,831