• Модуль: 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;
}