Posts Tagged ‘file’

Cache Cleanup Script – Delete Old Files

Friday, February 15th, 2008

The Cache Cleanup Script is designed to do just what it says – clean up temporary files created in some sort of cache directory. This script is meant to accompany some other kind of script that temporarily stores information in a file.

How Cache Cleanup Works

Here’s the source code in text format.

At the top of the script, you need to set two values – $dirName and $timeLimit.

$dirName should be a local path to the directory you want to scan for old files. $timeLimit should be the maximum allowable inactive time, in seconds.

The logic of the script is very straightforward. First, we scandir() to get an array of filenames in our cache directory.

Then, we loop through each fileName. If the file was last accessed before our timeLimit, we delete the file. If not, we leave the file alone.

If the script attempts to delete a file, it will output a success or failure message. Otherwise, there is no output.

How to Implement Cache Cleanup

First, set the configuration variables to your desired settings. I intentionally refrained from using any kind of input into the script for security reasons.

Next, decide how you want to run the script.

If your host allows you to run cron jobs, the logical choice would be to make this a cron job run every so often. Depending on how long you want the temporary files to remain on your server, I’d run the cron job once a day or so.

If your host doesn’t allow cron jobs, you could manually access the script each time you want to check for idle files and delete them. This isn’t a bad choice if you want to check once a week or so, but it is kind of annoying to do it every day.

You could also incorporate this into your caching script. Every time the script creates or accesses a cached file, it could call this script (as a function) and delete unused files. This may not be a desirable option for performance reasons if you have a lot of cached files, but it wouldn’t be bad for smaller cache directories.

Anyhow, I just wrote the script. You figure out how you want to implement it.

$dirName = 'cache';	// Path to the cache directory
$timeLimit = 300;	// Max time since a file has been accessed
			//   before it should be deleted
 
if (is_dir($dirName)) {
  $files = scandir($dirName);
}
 
foreach ($files as $file) {
  if ($file == '.' || $file == '..') {
    continue;
  }
 
  if (fileatime($dirName . '/' . $file) < time() - $timeLimit) {
    if (unlink($dirName . '/' . $file)) {
      echo "$file deleted successfully.";
    } else {
      echo "$file not deleted.";
    }
    echo '<br />';
  }
}

How to Create an RSS Feed for Your Site in PHP

Thursday, February 14th, 2008

Most blogging platforms come with built-in support for RSS feeds. Why? It’s a great way for users to keep up to date on your new content. Instead of loading up a dozen favorite sites, they can look at one feed reader and then decide what to pursue further.

So what if you don’t use a blogging platform or CMS that creates a feed for you? You can create one yourself in PHP. It’s pretty simple.
(more…)