- Модуль: security
- Путь к файлу: ~/bitrix/modules/security/lib/controller/xscan.php
- Класс: BitrixSecurityControllerXscan
- Вызов: Xscan::scanAction
public function scanAction(string $start_path, string $break_point = '', string $clean = 'N', int $progress = 0,
int $total = 0)
{
$start_path = $start_path ? $start_path : $_SERVER['DOCUMENT_ROOT'];
$start_path = rtrim($start_path, '/');
$scaner = new CBitrixXscan($progress, $total);
$scaner->skip_path = $break_point;
$session = BitrixMainApplication::getInstance()->getSession();
if (!is_dir($start_path))
{
$msg = Loc::getMessage("BITRIX_XSCAN_NACALQNYY_PUTQ_NE_NA");
return ['error' => $msg];
}
if ($clean == 'Y')
{
$session['xscan_page'] = 1;
$session->save();
$scaner->clean();
$scaner->CheckEvents();
$scaner->CheckAgents();
$scaner->Search($start_path, 'count');
}
else
{
$session->save();
}
$scaner->Search($start_path);
$scaner->SavetoDB();
$prc = $scaner->total == 0 ? min(75, (int)($scaner->progress / 1000)) : (int)($scaner->progress * 100 / $scaner->total);
return [
'progress' => $scaner->progress,
'total' => $scaner->total,
'break_point' => $scaner->break_point,
'prc' => $prc,
];
}