10/10/2018, 10:45
Func liệt kê file trong folder và cả file trong sub folder của nó
Trước mình rất cần cái này nhưng tìm kiếm chỉ tìm đc function liệt kê các file trong 1 folder mà ko liệt kê đc cả các file trong subfolder của nó.
Cụ thể như folder a/ có file x.php, y.txt, sub folder a/b/ có file z.html
ta cần làm 1 function để liệt kê ra các file trong folder a/ như sau:
a/x.php
a/y.txt
a/b/z.html
Mà mình ko đc học IT mà chỉ là tìm tòi cái mớ php và sql mà biết thôi.
Thế mà hôm qua ngồi nghĩ, vì đang làm cái component cho joomla mà cái file .xml để cài cần liệt kê file cho nó upload lên.
Cuối cùng cũng đã làm đc cái function này, cùng chia sẻ cho ai cần nó!
Tất nhiên cái function này chỉ nên (và chắc chắn rằng) tổng các file tỏng folder đưa vào function phải là ko quá lớn, nếu ko sẽ ko biết điều gì xảy ra đâu
ai có ý kiến xin chỉ giáo!
Cụ thể như folder a/ có file x.php, y.txt, sub folder a/b/ có file z.html
ta cần làm 1 function để liệt kê ra các file trong folder a/ như sau:
a/x.php
a/y.txt
a/b/z.html
Mà mình ko đc học IT mà chỉ là tìm tòi cái mớ php và sql mà biết thôi.
Thế mà hôm qua ngồi nghĩ, vì đang làm cái component cho joomla mà cái file .xml để cài cần liệt kê file cho nó upload lên.
Cuối cùng cũng đã làm đc cái function này, cùng chia sẻ cho ai cần nó!
PHP Code:
function lFiles($dir){
$files = array();
$dirs***91;***93; = $dir; // cho vao ngan xep
while (count($dirs)) { // ngan xep ron~g thi stop!
$directory = opendir($dirs***91;0***93;); // Doc ngan xep dau tien
// get list file a dir
while($item = readdir($directory)){
// We filter the elements that we don't want to appear ".", ".." and ".svn"
if(($item != ".") && ($item != "..") && ($item != ".svn") ){
if(!is_dir($dirs***91;0***93;.'/'.$item)) {
$files***91;***93; = $dirs***91;0***93;.'/'.$item;
}
else $dirs***91;***93; = $dirs***91;0***93;.'/'.$item; // nap vao ngan xep neu la dir
}
}
array_splice($dirs, 0, 1); // xoa ngan xep dau tien
closedir($directory);
}
return $files;
}
ai có ý kiến xin chỉ giáo!
Bài liên quan
Xem cái này có được không?
Hàm đệ quy là hàm các lệnh trong đó tự gọi chính hàm đó, như vậy bạn cần làm như sau
1. Gọi hàm với thư mục cần liệt kê
2. Trong hàm bạn viết, nếu vẫn còn cấp con thì gọi tiếp tục chính nó. Nếu hết thì quit
cách này có thể dùng để làm menu đa cấp, danh mục đa cấp
uhm, Mình thử functuion của bạn đưa xem thế nào nhé
Tóm lại cái function trên của mình đã làm đc rồi mà...
Có 1 cái là dùng "/" mà ko dùng DIRECTORY_SEPARATOR thì ko biết khi nào nó sẽ gay lỗi nữa! Ko rõ những ng` RIP template joomla từ site khác thì khi tạo file xml họ làm j, liệt kê file = tay hay cũng dùng hàm nhỉ?
giả sử làm đc 1 temp joomla cần làm cái xml chuẩn để có thể install, nếu ko chỉ có cách là upload lên folder template/ của joomla trên host, đúng ko?
Nếu làm 1 temp hay com hay mod cần làm cái xml chuẩn chớ !
Với lại bác là design thì bác luôn có cái mẫu cho riêng bác trong máy rùi, Đụng tới nó là bác vác nó ra past vô.