Takéto funkcie nie su priamo súčasťou PHP knižníc, preto som sa rozhodol ich naprogramovať a zverejniť. Funkcie som ladil vo verzii PHP 5.2.5.
Predpokladám u programátora základné znalosti PHP.
Funkcia Search_directory prehľadá adresár $dir (napr.: d:\mojedata\) a uloží do premennej $files obsah všetkých nájdených súborov.
function Search_directory($dir, &$files)
{
clearstatcache();
if (is_dir($dir))
{
if ($openDir = opendir($dir))
{
while (false !== ($file = readdir($openDir)))
{
if (!in_array($file, array('.','..')))
{
$f = strtolower($dir.$file);
if (is_dir($f))
{
$f = $f.'\\\\';
$files[] = $f;
Search_directory($f, $files);
}
else
$files[] = $f;
}
}
closedir($openDir);
}
}
}
Funkcia Remove_directory vymaže celý adresár $dir aj so súbormi.
function Remove_directory($dir)
{
clearstatcache();
if(is_dir($dir))
{
$dir = substr($dir, -1) != "/" ? $dir."/" : $dir;
$openDir = opendir($dir);
while (false !== ($file = readdir($openDir)))
{
if (!in_array($file, array('.','..')))
{
if (is_dir($dir.$file))
Remove_directory($dir.$file);
else
@unlink($dir.$file);
}
}
closedir($openDir);
@rmdir($dir);
return true;
}
else
return false;
}
Funkcia Copy_directory prekopíruje celý adresár $source aj so súbormi do adresára $destination.
function Copy_directory($source, $destination)
{
clearstatcache();
if (is_dir($source))
{
@mkdir($destination);
$directory = dir($source);
while (false !== ($readdirectory = $directory->read()))
{
if ($readdirectory != '.' && $readdirectory != '..')
{
$pathdir = $source.'/'.$readdirectory;
if (is_dir($pathdir))
Copy_directory($pathdir, $destination.'/'.$readdirectory);
else
copy($pathdir, $destination.'/'.$readdirectory);
}
}
$directory->close();
}
else
copy($source, $destination);
}
V prípade OS Linux (/) versus Windows (\) treba zmeniť lomítko v adresároch podľa potreby. Ako ste si iste všimli, využívam vo všetkých funkciách tzv. rekurzívne volanie tej iste funkcie v tele. V tomto prípade je táto metóda obzvlášť vhodná, kedže potrebujeme prehľadávať v tzv. stromových štruktúrach adresáre a súbory.
s pozdravom.







