• Модуль: 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,
	];
}