Current Path : /home/bitrix/ext_www/vf.yacl.site/ |
Current File : /home/bitrix/ext_www/vf.yacl.site/export-4k.php |
<? require($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/prolog_before.php'); function str_or_dash($str) { $res = HTMLToTxt(trim($str), 'https://historydepositarium.ru', array(), false); return strlen($str) > 0 ? $str : '-'; } function text_clean($str) { return html_entity_decode(preg_replace("~\s*[\r\n]+\s*~im", "\r\n", $str)); } $arID = array(); foreach (array_diff(scandir('./vector'), array('..', '.')) as $d) { foreach (array_diff(scandir("./vector/{$d}"), array('..', '.')) as $sd) { $arID[] = intval($sd); } } if (count($arID) > 4000) { die("<h1>Обработка завершена (".count($arID).") @ ".date('c')."</h1>"); } $page = intval($_REQUEST['page']) > 0 ? intval($_REQUEST['page']) : 1; header('refresh: 5;url=/export-4k.php?page='.($page + 1)); CModule::IncludeModule("iblock"); $srt = array('ID' => 'DESC'); $flt = array('IBLOCK_ID' => 1, 'PROPERTY_STATUS' => 2, '!NAME' => false, '!PROPERTY_DESCRIPTION' => false, '!PROPERTY_FILE' => false); $nav = array('nPageSize' => 500, 'iNumPage' => $page); $sel = array('ID', 'NAME', 'PROPERTY_SURNAME', 'PROPERTY_NAME', 'PROPERTY_PATRONYMIC', 'PROPERTY_BORN_DATE', 'PROPERTY_DEATH_DATE', 'PROPERTY_CITY', 'PROPERTY_DESCRIPTION', 'PROPERTY_FILE'); $db = CIBlockElement::GetList($srt, $flt, false, $nav, $sel); print("<h1>Обработка @ ".date('c')." страница {$page} готово ".count($arID)."</h1>"); while ($elm = $db->GetNext(false, false)) { if (!in_array($elm['ID'], $arID) && intval($elm['PROPERTY_FILE_VALUE']) > 0 && strlen($elm['PROPERTY_DESCRIPTION_VALUE']['TEXT']) > 1500) { print("<p>{$elm['ID']} {$elm['NAME']}</p>"); $dir = './vector/'.substr(strtoupper(trim($elm['NAME'])), 0, 1)."/{$elm['ID']} {$elm['NAME']}"; if (!file_exists($dir)) mkdir($dir, 0755, true); $name = Cutil::translit($elm['NAME'], 'ru', ['replace_space'=>'-', 'replace_other'=>'-']); $text = "ФИО:\r\n".str_or_dash($elm['NAME']); $text .= "\r\n\r\nФАМИЛИЯ:\r\n".str_or_dash($elm['PROPERTY_SURNAME_VALUE']); $text .= "\r\n\r\nИМЯ:\r\n".str_or_dash($elm['PROPERTY_NAME_VALUE']); $text .= "\r\n\r\nОТЧЕСТВО:\r\n".str_or_dash($elm['PROPERTY_PATRONYMIC_VALUE']); $text .= "\r\n\r\nГОРОД:\r\n".str_or_dash($elm['PROPERTY_CITY_VALUE']); $text .= "\r\n\r\nДАТА РОЖДЕНИЯ:\r\n".str_or_dash($elm['PROPERTY_BORN_DATE_VALUE']); $text .= "\r\n\r\nДАТА СМЕРТИ:\r\n".str_or_dash($elm['PROPERTY_DEATH_DATE_VALUE']); $text .= "\r\n\r\nИСТОРИЯ:\r\n".str_or_dash(text_clean($elm['PROPERTY_DESCRIPTION_VALUE']['TEXT'])); file_put_contents("{$dir}/{$name}.txt", $text); $img = CFile::GetPath($elm['PROPERTY_FILE_VALUE']); $parts = pathinfo($img); copy(".{$img}", "{$dir}/{$name}.{$parts['extension']}"); } } ?>