Apr 19 at 10:03am, Don Myers wrote:
> PHP gurus. I know this can be made shorter but I can't seem to figure
> out how. This is a PHP CLI script I use to go through a directory
> listing a act upon file matching the same prefix and/or suffix if
> supplied. This is the code I use now.

First of all, I made some stylistic changes. I prefer to
"interpolate {$variables} like so" or to use sprintf().

I changed your variable name $file, as there is a built-in function file().
I couldn't say if that actually would conflict or not, because I would never
do that :) Avoiding that type of potential conflict is just a good habit.

To shorten the code, I think you could just test the prefix and suffix
without checking which of them are set. I didn't test your code, but I
imagine your code would also evaluate as you expect, were they blank or
not. Same with the regex here; however, I didn't test this code either.

Hopefully this type of optimization is what you were looking for.
- Kelly


// constant; preferred date format
define('DATE_FMT','F j, Y');

// set file prefix and suffix
$deleteprefix = "";
$deletesuffix = "";

// create regex pattern
$regexpattern = sprintf('/^%s.*%s$/',$deleteprefix,$deletesuffix);

// open folder or die!
$dir_handle = @opendir($rootpath) or
    die("Unable to open {$rootpath}: not folder\n");

// loop through files in directory
while ($fname = readdir($dir_handle)) {
    
   // remove files matching the prefix/suffix, that don't start with dot
   if (preg_match($regexpattern,$fname) && substr($fname,0,1) != '.') {
      $modtime = date(DATE_FMT,filemtime($rootpath.$fname));
      logger(sprintf('Deleted: %s Last Modified: %s',$fname,$modtime));
      unlink($rootpath.$fname); }

}

-- 
Kelly Hallman
// Ultrafancy

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to