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.
// set up the prefix and/or suffix if I want to match on certain files
$deleteprefix = "";
$deletesuffix = "";
// Open the folder
$dir_handle = @opendir($rootpath) or die("Unable to open ".$rootpath." hot
folder\n");
// Loop through the files
while ($file = readdir($dir_handle)) {
if (substr($file,0,1) <> ".") {
// tests
if (($deleteprefix == "") and ($deletesuffix == "")) {
// if both are empty just send anything
logger("Deleted: ".$file." Last Modified: ".date("F j, Y
",filemtime($rootpath.$file)));
unlink($rootpath.$file);
} elseif (($deleteprefix != "") and ($deletesuffix != "")) {
// if both have something test both
if ((substr($file,0,strlen($deleteprefix)) == $deleteprefix)
and (substr($file,-strlen($deletesuffix)) == $deletesuffix)) {
logger("Deleted: ".$file." Last Modified: ".date("F j, Y
",filemtime($rootpath.$file)));
unlink($rootpath.$file);
}
} elseif (($deleteprefix == "") and ($deletesuffix != "")) {
// if prefix is empty but suffix is not
if (substr($file,-strlen($deletesuffix)) == $deletesuffix) {
logger("Deleted: ".$file." Last Modified: ".date("F j, Y
",filemtime($rootpath.$file)));
unlink($rootpath.$file);
}
} elseif (($deleteprefix != "") and ($deletesuffix == "")) {
// if suffix is empty but prefix is not
if (substr($file,0,strlen($deleteprefix)) == $deleteprefix)
{
logger("Deleted: ".$file." Last Modified: ".date("F j, Y
",filemtime($rootpath.$file)));
unlink($rootpath.$file);
}
}
}
}
As you can see I test the filename 4 times depending on if the prefix or
suffix was supplied. Can somebody help me make this shorter? I don't think
all those tests are necessary if I could figure out the syntax.
DMyers
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php