<? use \Bitrix\Main\Loader; define(NO_KEEP_STATISTIC, true); //запрет сбора статистики define(NOT_CHECK_PERMISSIONS, true); //отключение проверки прав на доступ к файлам и каталогам define(BX_BUFFER_USED, true); // сбросит уровень буферизации CMain::EndBufferContent define(LID, "s1"); if (empty($_SERVER["DOCUMENT_ROOT"])) {//DOCUMENT_ROOT может быть не определён, поэтому определим его сами $_SERVER["DOCUMENT_ROOT"] = '../..'; } require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"); //подключаем ядро set_time_limit(0); while (ob_get_level()) { /* цикл, который сбросит все буферы */ ob_end_flush(); } Loader::includeModule("iblock"); //подключаем нужные нам модули Loader::includeModule("catalog"); Loader::includeModule("sale"); |
Если Вы пишете скрипт, который будет загружаться из консоли, то данный вариант не очень подойдет.
Начнем с того, что буферы сбрасывать не нужно. Если хотите сделать вывод информации незамедлительно - делайте fwrite(STDOUT, '#text#'); который не будет дожидаться всего ответа.
Далее, нужно выключить агентов для этого NO_AGENT_CHECK должен быть установлен в true
$_SERVER["DOCUMENT_ROOT"] - должен быть задан явно, так как не факт что 2 директории выше это корневой каталог.
Ну и консольный скрипт, для битрикс24 должен точно заканчиваться эпилогом (или хотя бы final-функцией CMain класса), иначе косячки уведомлениями.
Получается что скрипт будет примерно таким:
Начнем с того, что буферы сбрасывать не нужно. Если хотите сделать вывод информации незамедлительно - делайте fwrite(STDOUT, '#text#'); который не будет дожидаться всего ответа.
Далее, нужно выключить агентов для этого NO_AGENT_CHECK должен быть установлен в true
$_SERVER["DOCUMENT_ROOT"] - должен быть задан явно, так как не факт что 2 директории выше это корневой каталог.
Ну и консольный скрипт, для битрикс24 должен точно заканчиваться эпилогом (или хотя бы final-функцией CMain класса), иначе косячки уведомлениями.
Получается что скрипт будет примерно таким:
<? $_SERVER["DOCUMENT_ROOT"] = '/home/bitix/www/'; $DOCUMENT_ROOT = $_SERVER["DOCUMENT_ROOT"]; define("NO_KEEP_STATISTIC", true); define("NOT_CHECK_PERMISSIONS",true); define("NO_AGENT_CHECK", true); define('LID', "s1"); define("LANG", "ru"); require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"); set_time_limit(0); // Полезный код require($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/epilog_after.php"); |