/** * @param string $sTempPath * @param int $iTime2Kill * @param int $iNow * * @return bool */ public static function RecTimeDirRemove($sTempPath, $iTime2Kill, $iNow) { $iFileCount = 0; $sTempPath = rtrim($sTempPath, '\\/'); if (@\is_dir($sTempPath)) { $rDirH = @\opendir($sTempPath); if ($rDirH) { $bRemoveAllDirs = true; while (($sFile = @\readdir($rDirH)) !== false) { if ('.' !== $sFile && '..' !== $sFile) { if (@\is_dir($sTempPath . '/' . $sFile)) { if (!\MailSo\Base\Utils::RecTimeDirRemove($sTempPath . '/' . $sFile, $iTime2Kill, $iNow)) { $bRemoveAllDirs = false; } } else { $iFileCount++; } } } @\closedir($rDirH); } if ($iFileCount > 0) { if (\MailSo\Base\Utils::TimeFilesRemove($sTempPath, $iTime2Kill, $iNow)) { return @\rmdir($sTempPath); } } else { return $bRemoveAllDirs ? @\rmdir($sTempPath) : false; } return false; } return true; }