@fedtur

Как исправить ошибку подключения prolog_before bitrix?

В случайный момент времени, скрипт запускаемый кроном перестал работать, а конкретно стал выдавать ошибку Unclosed '{' on line 351 in /var/www/html/bitrix/modules/main/tools.php on line 5309 . Попытался запустить скрипт вручную через терминал, та же проблема, не смотря на то, что ядро битрикс не трогал. Вообще никаких изменений не вносил.
Ошибка падает на строки ob_start и require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");

require 'vendor/autoload.php';
use Shuchkin\SimpleXLSX;
define("NO_KEEP_STATISTIC", true);
define("NOT_CHECK_PERMISSIONS", true);
$isImport=false;
if (php_sapi_name() === 'cli') {


    echo "Running in CLI mode\n";
    $_SERVER["DOCUMENT_ROOT"] = '/var/www/html';
    // Получение параметров командной строки
    $options = getopt("", ["XML_LINK:"]);

     $xmlSource = isset($options['XML_LINK']) ? $options['XML_LINK'] : '';
//    $xmlSource = '/var/www/html/test.xml';

    if (empty($xmlSource)) {
        die('XML_LINK параметр отсутствует или пустой.');
    }

    echo "XML Source: $xmlSource\n";
}else{
    if($_POST['isImport']==1){
        $isImport=true;
    }

}

require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php");


use Bitrix\Highloadblock\HighloadBlockTable;
use Bitrix\Highloadblock\HighloadBlockElementTable;
use Bitrix\Main\Loader;
use Bitrix\Main\Entity;

if (!Loader::includeModule('highloadblock')) {
    die('Не удалось подключить модуль Highload-блоков');
}

... код для получения данных из xml и запись в highblock ...

require($_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/epilog_after.php");
if (php_sapi_name() === 'cli') {
    ob_end_flush();
}
?>
  • Вопрос задан
  • 161 просмотр
Решения вопроса 1
@fedtur Автор вопроса
Необходимо включить short_open_tag не только для веб, но и для терминала. Сделать это нужно в php.ini
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы