Bitrix

Консольный скрипт с подключением ядра 1С-Битрикс

Бывают случаи, когда нужно сделать скрипт на php, который бы отображал вывод непосредственно в консоль сервера при подключении через ssh, либо отправлял выходные данные на электронную почту. К тому же очень удобно такой скрипт непосредственно добавить в исполнение через cron, не пользуясь интерфейсом агентов 1С-Битрикс.

Непосредственно структура такого файла очень проста:
1. заголовочная часть, где стоит строка для bash с указанием какой интерпретатор использовать
2. Блок установки параметров для битрикс. Обеспечение utf-8 режима работы, установка серверных параметров, констант битрикс и непосредственно включение пролога Битрикс со сбросом буфера.
3. Выполнение необходимых действий.
4. Подключение эпилога Битрикс.

Также можно добавить возможность показа времени работы.

Вот скелет типового скрипта:

 

#!/usr/bin/php
<?php
set_time_limit(0);
ini_set(‘mbstring.func_overload’, «2»);
ini_set(«memory_limit»,»1024M»);
//ini_set(‘mbstring.internal_encoding’, «UTF-8»);

$_SERVER[«DOCUMENT_ROOT»] = «/home/bitrix/www/«;
$DOCUMENT_ROOT = $_SERVER[«DOCUMENT_ROOT»];
define(«LANG», «s1«);

define(«BX_UTF», true);
define(«NO_KEEP_STATISTIC», true);
define(«NOT_CHECK_PERMISSIONS», true);
define(«BX_BUFFER_USED», true);

require($_SERVER[«DOCUMENT_ROOT»] . «/bitrix/modules/main/include/prolog_before.php»);
while (ob_get_level())
ob_end_flush();

$startExecTime = getmicrotime();

// Блок действий //
….
….
….
// \Конец Блока действий //

echo «\nScript works » . (getmicrotime() — $startExecTime) . » sec\n»;
require($_SERVER[«DOCUMENT_ROOT»]. «/bitrix/modules/main/include/epilog_after.php»);
?>

Тут есть ряд нюансов:
1. Если вы используете кодировку cp1251, то строки ini_set(‘mbstring.func_overload’, «2»); , ini_set(‘mbstring.internal_encoding’, «UTF-8»); и define(«BX_UTF», true); не требуются.
2. Инструкция ini_set(‘mbstring.internal_encoding’, «UTF-8»); не требуется, если вы используете PHP версии выше 5.6
3. Параметры, которые требуют изменения, указаны жирным шрифтом.

Отставить комментарий

Ваш электронный адрес не будет опубликован.Обязательные для заполнения поля отмечены *

три × три =