PHP Скрипт регулярка в цикле
Есть на входе скрипта Большая 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 .= '
break;
};
}
/*-------*/
};
}
//Возвращаем статью
return "
- ".$menu."
}