- Модуль: main
- Путь к файлу: ~/bitrix/modules/main/lib/composite/engine.php
- Класс: BitrixMainCompositeEngine
- Вызов: Engine::getFrameIndexes
static function getFrameIndexes($content)
{
$openTag = "";
$areas = array();
$offset = 0;
while (($openTagStart = strpos($content, $openTag, $offset)) !== false)
{
$endingPos = strpos($content, $ending, $openTagStart);
if ($endingPos === false)
{
break;
}
$idStart = $openTagStart + mb_strlen($openTag);
$idLength = $endingPos - $idStart;
$areaId = substr($content, $idStart, $idLength);
$openTagEnd = $endingPos + mb_strlen($ending);
$realClosingTag = $closingTag.$areaId.$ending;
$closingTagStart = strpos($content, $realClosingTag, $openTagEnd);
if ($closingTagStart === false)
{
$offset = $openTagEnd;
continue;
}
$closingTagEnd = $closingTagStart + mb_strlen($realClosingTag);
$area = new stdClass();
$area->id = $areaId;
$area->openTagStart = $openTagStart;
$area->openTagEnd = $openTagEnd;
$area->closingTagStart = $closingTagStart;
$area->closingTagEnd = $closingTagEnd;
$areas[] = $area;
$offset = $closingTagEnd;
}
return !empty($areas) ? $areas : false;
}