Hàm is_dir() trong PHP dùng để làm gì?

24/11/2020 - lượt xem
Chia sẻ
 
Rate this post

Định nghĩa.

Hàm is_dir() sẽ kiểm tra xem đường dẫn truyền vào có phải là một thư mục hay không.

Cú pháp.

Cú pháp:

is_dir ( string $filename ) : bool

Trong đó.

  • $filename là đường dẫn cần kiểm tra. Nếu tên tệp là tên tệp tương đối, nó sẽ được kiểm tra liên quan đến thư mục làm việc hiện tại. Nếu tên tệp là một liên kết tượng trưng hoặc cứng thì liên kết sẽ được giải quyết và kiểm tra. Nếu bạn đã bật chế độ an toàn, hoặc open_basingir có thể áp dụng các hạn chế khác.

Giá trị trả về.

  • Hàm sẽ trả về True nếu đường dẫn truyền vào tồn tại và là một thư mục, Ngược lại hàm trả về False.
  •  

Ví dụ.

Ví dụ 1.

code.

<?php
var_dump(is_dir('a_file.txt'));
var_dump(is_dir('bogus_dir/abc'));

var_dump(is_dir('..')); //one dir up
?>

Kết quả.

bool(false)
bool(false)
bool(true)

Ghi chú.

  • Kết quả của chức năng này được lưu trữ. Xem Clearstatcache () để biết thêm chi tiết.
  • Kể từ phiên bản PHP 5.0.0, chức năng này cũng có thể được sử dụng với một số Supported Protocols and Wrappers. Tham khảo các Giao thức và Trình bao bọc được Hỗ trợ để xác định nhóm chức năng hỗ trợ stat() nào.

Hàm liên quan.

  • chdir() – Thay đổi thư mục.
  • dir() – Trả về một thể hiện của lớp Directory
  • opendir() – Mở một thư mục.
  • is_file() – Kiểm tra có phải một file hay không.
  • is_link() – Cho biết tên tệp có phải là một liên kết tượng trưng không

Thông tin thêm.

  • Chỉ cần lưu ý cho bất kỳ ai gặp is_dir () trả về false trên các điểm hoặc thư mục gắn kết CIFS trong các điểm gắn kết đó trên 2.6.31 và các hạt nhân mới hơn: Rõ ràng trong các hạt nhân mới, họ đã bắt đầu sử dụng tùy chọn máy chủ CIFS theo mặc định. Với cổ phiếu Windows, điều này gây ra số lượng inode rất lớn và dường như có thể khiến is_dir () trả về false. Thêm tùy chọn noserverino vào mount CIFS sẽ ngăn chặn điều này. Điều này có thể chỉ xảy ra trên 32 hệ thống nhưng tôi không cài đặt 64 bit để kiểm tra.
  • Lưu ý rằng trên Linux is_dir trả về FALSE nếu thư mục mẹ không có + x (thực thi) được đặt cho quy trình php.
  • Đây là chức năng “is_dir” tôi sử dụng để giải quyết các vấn đề:
    function Another_is_dir ($file)
    {
        if ((fileperms("$file") & 0x4000) == 0x4000)
            return TRUE;
        else
            return FALSE;
    }
    
    Hoặc
    
    function Another_is_dir ($file)
    {
    return ((fileperms("$file") & 0x4000) == 0x4000);
    }
    
  • Lưu ý rằng chức năng này tuân theo các liên kết tượng trưng. Nó sẽ trả về true nếu tập tin thực sự là một symlink trỏ đến một thư mục.
    Ví dụ.
    <php
    symlink(".", "testlink");
    var_dump(is_dir("testlink"));
    unlink("testlink");
    ?>
    
    Kết quả
    bool(true)
    (Windows Note: Trong các phiên bản Windows gần đây, bạn có thể đặt liên kết tượng trưng miễn là bạn là quản trị viên, nhưng bạn không thể xóa liên kết tượng trưng thư mục bằng “unlink ()”, bạn sẽ phải sử dụng “rmdir testlink” khỏi trình bao để loại bỏ nó.)

Các bạn có thể xem chi tiết hơn trên php.net.

Hi vọng với bài viết này, bạn đã hiểu rõ ứng dụng của hàm is_dir() trong PHP. Nếu bạn thấy bài viết hay và có ý nghĩa hãy like và chia sẻ bài viết này để mọi người cùng nhau học tập nhé. Cảm ơn các bạn đã ghé thăm codetutam.com

    Liên hệ với chúng tôi

    Để lại thông tin để nhận được các bài viết khác

    Rate this post

    Xem thêm nhiều bài tin mới nhất về Kiến thức

    Xem thêm