Συνάρτηση clearstatcache

Η συνάρτηση clearstatcache εκκαθαρίζει το cache που αποθηκεύει πληροφορίες σχετικά με την κατάσταση των αρχείων. Η PHP κρυφά αποθηκεύει τα αποτελέσματα των συναρτήσεων εργασίας με αρχεία, όπως οι filesize, filemtime και άλλες. Αυτή η συνάρτηση είναι χρήσιμη όταν χρειάζεται να λάβετε τρέχοντα δεδομένα για ένα αρχείο που ενδέχεται να άλλαξε κατά την εκτέλεση του script.

Σύνταξη

phpclearstatcache([bool $clear_realpath_cache = false], [string $filename = null]);

Παράδειγμα

Το απλούστερο παράδειγμα χρήσης της συνάρτησης χωρίς παραμέτρους:

php<?php
  clearstatcache();
  echo 'File cache cleared';
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php'File cache cleared'

Παράδειγμα

Παράδειγμα με εκκαθάριση cache για συγκεκριμένο αρχείο:

php<?php
  $file = 'test.txt';
  clearstatcache(true, $file);
  echo 'Cache cleared for file: ' . $file;
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php'Cache cleared for file: test.txt'

Παράδειγμα

Πρακτικό παράδειγμα με λήψη μεγέθους αρχείου:

php<?php
  $file = 'data.txt';
  
  // Πρώτη λήψη μεγέθους
  $size1 = filesize($file);
  
  // Αλλάζουμε το αρχείο (σε πραγματικό κώδικα το αρχείο μπορεί να είχε αλλάξει από άλλη διεργασία)
  file_put_contents($file, 'new content', FILE_APPEND);
  
  // Δεύτερη λήψη μεγέθους χωρίς εκκαθάριση cache
  $size2 = filesize($file);
  
  // Εκκαθαρίζουμε το cache και λαμβάνουμε το τρέχον μέγεθος
  clearstatcache(true, $file);
  $size3 = filesize($file);
  
  echo "Size1: $size1, Size2: $size2, Size3: $size3";
?>

Αποτέλεσμα εκτέλεσης κώδικα:

php'Size1: 10, Size2: 10, Size3: 20'

Δείτε επίσης

  • τη συνάρτηση file_exists,
    που ελέγχει την ύπαρξη αρχείου
  • τη συνάρτηση filesize,
    που επιστρέφει το μέγεθος αρχείου
  • τη συνάρτηση filemtime,
    που επιστρέφει τον χρόνο τροποποίησης