2015年9月3日 星期四

PHP 獲取資料夾下特定檔案的檔名

假設資料夾下有這些東西,folder是資料夾
$ ls
folder  handlebars-v3.0.3.js  jquery-1.10.2.min.js  start.html

要抓取所有的js檔的檔名

使用 opendir()
$ php -r '$handle=opendir("./"); while(false!==($file=readdir($handle))){ echo $file."\n"; } closedir($handle);'
.
..
folder
handlebars-v3.0.3.js
jquery-1.10.2.min.js
start.html
相當麻煩,必須先opendir(),用完後還要closedir()。取出的過程還需要跑回圈做處理


使用scandir()
$ php -r '$files = scandir("./"); print_r($files);'
Array
(
    [0] => .
    [1] => ..
    [2] => folder
    [3] => handlebars-v3.0.3.js
    [4] => jquery-1.10.2.min.js
    [5] => start.html
)
直接取出,只能取出後再對檔案過濾,連資料夾也會一起取出

使用glob()  =>採用
$ php -r '$files = glob("*{.js}", GLOB_BRACE); print_r($files);'
Array
(
    [0] => handlebars-v3.0.3.js
    [1] => jquery-1.10.2.min.js
)
可以使用正規表示式過濾檔名


參考資料:
http://jishus.org/?p=690  【PHP】透過glob、scandir、readdir取得資料夾內的檔案列表


沒有留言:

張貼留言