Kỹ thuật duyệt thư mục trong PHP

Xem: 694    Tải: 0   Thảo luận: 0   Mục: Php&mySql   Lĩnh vực: Khác

0 điểm   ( 6 đánh giá ) File đã được kiểm thử


Chào các bạn! hôm nay tôi sẽ giới thiệu tới các bạn kỹ thuật duyệt thư mục trong php. Đây cũng là 1 kỹ thuật khá quan trọng và hữu ích.

Kỹ thuật duyệt thư mục thường được dùng để tìm file, hiển thị danh các thư mục con. Ngoài ra kỹ thuật này còn dùng để tạo 1 album ảnh mà không cần lưu chúng vào cơ sở dữ liệu.

Bây giờ bắt đầu làm nào.

 

Để làm được kỹ thuật này, đầu tiên các bạn phải biết các function sẵn có mà PHP đã cung cấp.

  • opendir(tên thư mục hoặc đường dẫn): hàm này dùng để mở thư mục.
  • readdir( thư mục vừa mở ): đọc thư mục vừa được mở.
  • is_dir($dir) : kiểm tra xem $dir có phải là 1 thư mục hay không. Trong đó $dir là đường dẫn đến thư mục muốn kiểm tra.
  • is_file($dir) : tương tự như hàm is_dir($dir), dùng để kiểm tra $dir có phải là file hay không.

Với các hàm như trên, các bạn hoàn toàn có thể duyệt được 1 thư mục. Thế nhưng để làm việc tốt hơn và nâng cao hơn (vì đây là chuyên mục PHP nâng cao mà icon cool Kỹ thuật duyệt thư mục trong PHP  ) thì các bạn cần tìm hiểu thêm 1 số hàm nâng cao dưới đây :

  • filesize($file) : trả về kích thước của $file.
  • filectime($file) : trả về ngày tạo của $file.
  • dirname(__FILE__) : trả về đường dẫn của thư mục hiện hành. Trong đó __FILE__ là hằng số chỉ thư mục chứa file php đang gọi hàm dirname.
  • array_merge($array1,$array2) : hàm merge các mảng lại với nhau, có thể merge nhiều mảng 1 lúc bằng các truyền vào nhiều mảng khác nhau, mỗi mảng cách nhau bởi dấu “,”. Cần lưu ý là các mảng dùng để merge phải có cùng 1 cấu trúc, số lượng các phần tử phải bằng nhau.

Như vậy là ta đã có thể tạo nên 1 app duyệt  thư mục!

Hàm duyệt thư mục

function read_dir($dir,$type='both',$extra=false)

{

    $info=array();

    $dh=opendir($dir);

    $infod=array();$infof=array();

        while ( $name = readdir( $dh ))

        {

            if( $name=="." || $name==".." ) continue;

            if ( is_dir( "$dir/$name" ) && ( $type=='dir' || $type=='both') ){

                if($extra) {

                    $tinfo['name']=$name;

                    $tinfo['path']=$dir.'/'.$name;

                    $tinfo['size']='NA';

                    $tinfo['created']=filectime("$dir/$name");

                    $tinfo['type']='Folder';

                    $infod[]=$tinfo;

                } else $infod[]=$name; }

       

            if ( is_file( "$dir/$name" ) && ( $type=='file' || $type=='both')  ){

                if($extra) {

                    $tinfo['name']=$name;

                    $tinfo['path']=$dir.'/'.$name;

                    $tinfo['size']=filesize("$dir/$name");

                    $tinfo['created']=filectime("$dir/$name");

                    $tinfo['type']='File';

                    $infof[]=$tinfo;

                } else $infof[]=$name;

            }

        }

    $info=array_merge($infod,$infof);

    return $info;

}

Ta có 1 thư mục “sanpham” cùng cấp với file php như hình:

Ta sẽ gọi hàm read_dir như sau: $File_arr=read_dir(dirname(__FILE__).’/sanpham’,'both’,true);

trong đó ‘both’ là kiểu duyệt toàn bộ thư mục. ‘True’ lấy các biến mở rộng như ngày tạo, kiểu file…. Nếu truyền ‘false’ thì sẽ chỉ lấy tên thư mục hoặc file con.

Tiếp theo ta sẽ dùng HTML để hiển thị danh mục.

<table align="center" border="1" cellpadding="3">

<thead>

    <tr>

            <td align="center" valign="middle">Name</td>

            <td align="center" valign="middle">Path</td>

            <td align="center" valign="middle">Type</td>

            <td align="center" valign="middle">Size</td>

            <td align="center" valign="middle">Date created</td>

    </tr>

</thead>

<tbody>

    <?foreach($File_arr as $row)

            {echo

     '<tr>

            <td align="center" valign="middle">'.$row['name'].'</td>

            <td align="center" valign="middle">'.$row['path'].'</td>

            <td align="center" valign="middle">'.$row['type'].'</td>

            <td align="center" valign="middle">'.$row['size'].'</td>

            <td align="center" valign="middle">'.date('d-m-Y',$row['created']).'</td>

      </tr>';

            }?>

</tbody>

</table>

Và đây là kết quả:

Chúc các bạn thành công!

Kỹ thuật duyệt thư mục trong PHP

Kỹ thuật duyệt thư mục trong PHP Đăng ngày 01-04-2014  Chào các bạn! hôm nay tôi sẽ giới thiệu tới các bạn kỹ thuật duyệt thư mục trong php. Đây cũng là 1 kỹ thuật khá quan trọng và hữu ích. Kỹ thuật duyệt thư mục thường được dùng để tìm file, hiển thị danh các thư mục con. Ngoài ra kỹ thuật này còn dùng để tạo 1 album ảnh mà không cần lưu chúng vào cơ sở dữ liệu. 5/10 694

Thảo luận:

Để bình luận bạn phải đăng nhập thành viên.

File tương tự

Files cùng mục

 

File tải nhiều nhất

Megacode.vn - Thư viện mã nguồn chia sẻ, tải file cho cộng đồng
Copyright © 2013-2016. All rights reserved. Bản quyền thuộc VinaGon
Địa chỉ: Số 38 Hàng Bè, Hàng Bạc, Hoàn Kiếm, Hà Nội.
Văn phòng giao dịch: Phòng 28, Tầng 6, HH1A Linh Đàm, Hoàng Mai, Hà Nội
Email: info@vinagon.com | Website: www.vinagon.com | Điện thoại: (+844) 6. 32.979.36;
logo megacode

Megacode đã đăng ký với Bộ Công Thương
Thư viện mã nguồn mở lớn nhất Việt Nam.



Hỗ trợ khách hàng trên Megacode
Hỗ trợ kỹ thuật cho thành viên:
Tổng đài: (+844) 6. 32.979.36
Số di động (Hotline): 0969.091.265
Thời gian làm việc:
Sáng: 8h-12h; Chiều: 13h30-17h30
(Nghỉ chiều T7, CN và các ngày lễ, tết)
Chat với Megacode
https://www.facebook.com/megacodevn