clearstatcache() Trong PHP có chức năng gì?

29/06/2020 - lượt xem
Chia sẻ
 
Rate this post

Định Nghĩa.

Hàm clearstatcache() sẽ xóa bộ nhớ cache về tình trạng file.
Hàm tương thích trên PHP4, PHP5, PHP7.

Cú pháp.

Cú pháp:

clearstatcache ([ bool $clear_realpath_cache = FALSE [, string $filename ]] ) : void

– Khi bạn sử dụng một trong số các hàm sau: stat()lstat()file_exists()is_writable()is_readable()is_executable()is_file()is_dir()is_link()filectime()fileatime()filemtime()fileinode()filegroup()fileowner()filesize()filetype(), and fileperms(). PHP sẽ lưu trữ thông tin trả về của các hàm đó vào bộ nhớ tạm để việc thực hiện các lần sau nhanh hơn( tương tự với cache của trình duyệt). Khi muốn xóa các thông tin đã được lưu trữ đó, ta sử dụng hàm clearstatcache().

– Bạn cũng nên lưu ý rằng PHP không lưu trữ thông tin về các tệp không tồn tại. Vì vậy, nếu bạn gọi file_exists () trên một tệp không tồn tại, nó sẽ trả về FALSE cho đến khi bạn tạo tệp. Nếu bạn tạo tệp, nó sẽ trả về TRUE ngay cả khi bạn xóa tệp. Tuy nhiên, unlink () tự động xóa bộ đệm.

Lưu ý: Hàm này lưu trữ thông tin về tên tệp cụ thể, vì vậy bạn chỉ cần gọi Clearstatcache () 
nếu bạn đang thực hiện nhiều thao tác trên cùng một tên tệp và yêu cầu thông tin về tệp cụ 
thể đó không được lưu vào bộ đệm.

Trong đó.

  • $clear_realpath_cache là tham số không bắt buộc quy định có nên xóa bộ nhớ của file cụ thể hay không. True nghĩa là có, False là không.
  • $filename chỉ sử dụng khi $clear_realpath_cache mang giá trị True, đường dẫn tới file cần xóa bỏ cache.

Giá trị trả về.

  • Hàm không có kết quả trả về.

Ví dụ.

code:

<?php
$file = 'output_log.txt';
 
function get_owner($file)
{
    $stat = stat($file);
    $user = posix_getpwuid($stat['uid']);
    return $user['name'];
}
 
$format = "UID @ %s: %s\n";
 
printf($format, date('r'), get_owner($file));
 
chown($file, 'ross');
printf($format, date('r'), get_owner($file));
 
clearstatcache();
printf($format, date('r'), get_owner($file));
?>

Kết qủa:

UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: root
UID @ Sun, 12 Oct 2008 20:48:28 +0100: ross

Thông tin thêm.

  • Clearstatcache () không hợp quy hóa đường dẫn. Clearstatcache (true, “/ a / b / c”) khác với Clearstatcache (true, “/ a / b // c”).
  • unlink () không xóa bộ đệm nếu bạn đang thực hiện file_exists () trên một tệp từ xa như:

    <?php
    if (file_exists("ftp://ftp.example.com/somefile"))
    ?>

    Trong trường hợp này, ngay cả sau khi bạn unlink() thành công, bạn phải gọi Clearstatcache ().

    <?php
    unlink("ftp://ftp.example.com/somefile");
    clearstatcache();
    ?>

    file_exists () sau đó trả về false.

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 clearstatcache() 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