<?php
/**
 * Парсер раздела "Реализованные и реализуемые инвестиционные проекты"
 * с invest.ingushetia.ru
 */

// URL целевой страницы
$url = "https://invest.ingushetia.ru/realizuemye-na-territorii-regiona-investiczionnye-proekty/";

// Загружаем страницу
$html = file_get_contents($url);

// Проверка на успешность
if ($html === false) {
    die("Ошибка загрузки страницы: $url");
}

// Загружаем в DOMDocument
$dom = new DOMDocument();

// Отключаем предупреждения некорректного HTML
libxml_use_internal_errors(true);

$dom->loadHTML($html);
libxml_clear_errors();

// XPath для выборки блоков с проектами
$xpath = new DOMXPath($dom);

// Находим все заголовки H2 и H3 (которые содержат проекты)
$nodes = $xpath->query("//h2 | //h3");

$projects = [];

$currentSection = null;

// Обход всех узлов заголовков
foreach ($nodes as $node) {
    // Текст заголовка
    $title = trim($node->textContent);

    // Если начинается раздел "Реализованные инвестиционные проекты"
    if (stripos($title, "Реализованные инвестиционные проекты") !== false) {
        $currentSection = "realized";
        continue;
    }

    // Если начинается раздел "Реализуемые инвестиционные проекты"
    if (stripos($title, "Реализуемые инвестиционные проекты") !== false) {
        $currentSection = "ongoing";
        continue;
    }

    // Если текущая секция проектов — парсим проект
    if ($currentSection !== null && strlen($title) > 0) {
        // Блок с описанием — следующий sibling
        $next = $node->nextSibling;
        $description = '';

        // Собираем описание проекта до следующего заголовка
        while ($next && !in_array($next->nodeName, ['h2','h3'])) {
            $description .= $dom->saveHTML($next);
            $next = $next->nextSibling;
        }

        $projects[$currentSection][] = [
            'title' => $title,
            'description_html' => trim($description)
        ];
    }
}

// Вывод (пример)
echo "<pre>";
print_r($projects);
echo "</pre>";