I am trying to read a directory recursively and find the matching files in it:
function readFiles($sBaseDir)
{
$pointer = opendir($sBaseDir);
while (false !== ($sFilePath = readdir($pointer)))
{
if (is_dir($sFilePath))
{
closedir($pointer);
readFiles($sFilePath);
}
else
{
$arPaths = explode(DIRECTORY_SEPARATOR, $sFilePath);
$sFileName = $arPaths[count($arPaths) - 1];
$sEnding = substr($sFileName, strpos($sFileName, '.'));
if ($sEnding === '.rpm' || $sEnding === '.deb' || $sEnding === '.tar.gz' || $sEnding === '.tazpkg')
{
echo '<a href="index.php?getfile=' . urlencode($sFilePath) . '">' . $sFileName . '</a><br />' . PHP_EOL;
}
}
}
}
readFiles(dirname(__FILE__) . DIRECTORY_SEPARATOR . 'download');
But after the first iteration it´s next iteration is always .
. So, the script always searches the same directory and could not be finished, yet. But I am wondering why, it should work, shouldn´t it?