<?php
// устанавливаем лимит выполнения скрипта 120 сек
set_time_limit(120);
// включаем вывод ошибочек
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
// включаем замер исполнения скрипта
$startTime = microtime(true);
// логирование pid start
$pid = getmypid();
$file = fopen('../logs/detelePid.txt', 'a+');
$message = "pid: [$pid] DELETE : " . date("d.m.Y H:i:s") . PHP_EOL;
fwrite($file, $message);
fclose($file);
// логирование pid end
// подключаем prolog bitrix
require $_SERVER["DOCUMENT_ROOT"] . '/bitrix/modules/main/include/prolog_before.php';
// подключаем нужные модули
CModule::IncludeModule("iblock");
CModule::IncludeModule("sales");
/**
* Удаляем картинку элемента
* @param int $element_id ID элемента
*/
function deleteImage($element_id)
{
$res = CIBlockElement::GetByID($element_id);
if ($ar_res = $res->GetNext()) {
CFile::Delete($ar_res['DETAIL_PICTURE']);
}
}
/**
* Удаляем все элементы из бд
* @return [array]
*/
function deleteElementDisk($block_id, $count)
{
$arSelect = array("ID");
$arFilter = array("IBLOCK_ID" => $block_id);
$res = CIBlockElement::GetList(array(), $arFilter, false, Array("nPageSize"=>$count), $arSelect);
$i = 0;
while ($r = $res->GetNext()) {
$id = $r['ID'];
CIBlockElement::Delete($id); // удаляем элемент
CCatalogProduct::Delete($id); // удаляем торговое предложение
deleteImage($id); // удаляем картинку
$i++;
}
return $i;
}
$z = deleteElementDisk(7, 10000);
$endTime = microtime(true);
echo "Удалено записей: {$z}\n";
echo "\nВремя выполнения скрипта: " . ($endTime - $startTime) . " Сек.\n"; //вывод результата