Найдите исполнителя для вашего проекта прямо сейчас!
Разместите заказ на фриланс-бирже и предложения поступят уже через несколько минут.

Есть на входе скрипта Большая HTML статья с какой-то структурой, которая может быть задана тегами H1- H6.

Нужно автоматически генерировать для нее блок-содержание с якорными ссылками, как часто привыкли делать в блогах:

https://webcomplex.com.ua/osnovy-html4/urok-3-html-ssylki-yakorya-i-yakornye-ssylki.html

Функция имеется, но не поддерживает вложенность списка.

Сейчас так:

/*Генератор содержания для длинной статьи*/

function menu_generate($html)

{

//ob_start();

$menu = '';

/*Извлекаем абзацы, содержащие заголовок*/

preg_match_all("/(.*?)(.*?)(.*?)

/is",$html,$h1_matches);

//echo "h1_matches:

".htmlspecialchars(print_r($h1_matches[0],true)."
".$html)."
";

if(!empty($h1_matches[0]))

{

$id = 0;

foreach($h1_matches[0] as $item)

{

/*----Извлекаем сам заголовок из очередного абзаца---*/

preg_match_all("/(.*?)/is",$item,$h1);

if(!empty($h1[0]))

{

//echo "Содержимое тегов H1-H6:
\n";

foreach($h1[0] as $i)

{

$i = strip_tags($i);

//$h1 .= $item.";";

  //echo $item."
\n";

$html = str_replace($item,"".$item,$html);

$menu .= '

  • '.$i.'
  • '."\r\n";

    break;

    };

    }

    /*-------*/

    };

    }

    //Возвращаем статью 

    return "

      ".$menu."
    ".$html;

    }

    5 лет назад
    TRAFLINKS
    Игорь 
    44 годаУкраина
    5 лет в сервисе
    Был
    2 года назад