Собираем сведения о странице из bitrix

Запись от 28.05.2017
Понадобилось собрать сведения о произвольной странице на битриксе — параметры мета-тегов, заголовок и, собственно, сам контент.

Сведения о странице забираются просто:
$pagePath = '/my-page/index.php';
$pageFilePath = $_SERVER['DOCUMENT_ROOT'] . $pagePath;

$pageContent = $APPLICATION->GetFileContent($pageContent);
$pageContentParsed = ParseFileContent($pageContent);

В данном случает $pageContent содержит текстовое представление файла, как из file_get_contents(); а в $pageContentParsed находится массив с информацией о файле:
Array
(
    [PROLOG] => <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");...
    [TITLE] => Заголовок именно этой страницы
    [PROPERTIES] => Array()
    [CONTENT] => some html code here
    [EPILOG] => <?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/footer.php");?>
)

Далее нужно забрать данные о разделе, которые задаются рекурсивно файлами .section.php с помощью:
$sectionProperyList = $APPLICATION->GetDirPropertyList($pagePath);

/* output:
Array
(
    [DESCRIPTION] => Описание раздела
    [KEYWORDS] => ключевые, слова
    [TITLE] => Заголовок раздела
)
*/

Остается только объединить эти два массива, если требуется, конечно.
Сделать это можно, например, так:
$pageContentParsed['PROPERTIES'] = array_replace($sectionProperyList, $pageContentParsed['PROPERTIES']);