Я пытаюсь использовать PHP-реализацию Mustache для встраивания некоторого html-контента в шаблон:
[mytemplate begin]
[html content]
[mytemplate end]
Мой html-контент находится в html-файле, и при попытке его рендеринга у меня появляется ошибка:
echo $template->render(array('content' => file_get_contents('content.html')));
Вот ошибка:
Неустранимая ошибка: достигнут максимальный уровень вложенности функции «100», прерывание! в C: \ wamp \ www \ resume \ application \ mustache \ src \ Mustache \ Engine.php в строке 257
Как я могу вставить его как HTML-контент?
файл section.mustache (я удалил огромную часть HTML-кода, там только самое важное)
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
</head>
<body>
<!-- CONTENT -->
<div class="container">
{{> section}}
</div>
</body>
</html>
И файл content.html (Учтите, что есть два других <section>
с таким же количеством кода)
<div class="section">
<!-- Icon Section -->
<div class="row">
<div class="col s12 m8 offset-m2 l8 offset-l2">
<section id="sports" class="section scrollspy">
<h1>Sports</h1>
<div class="card">
<div class="card-image waves-effect waves-block waves-light">
<img src="media/images/climbing.jpg">
</div>
<div class="card-content">
<span class="card-title activator grey-text text-darken-4">Escalade<i class="mdi-navigation-more-vert right"></i></span>
</div>
<div class="card-reveal z-depth-3">
<span class="card-title grey-text text-darken-4"><h4>Escalade</h4><i class="mdi-navigation-close right"></i></span>
<p class="flow-text">Here is some more information about this product that is only revealed once clicked on. </p>
</div>
</div>
<div class="card">
<div class="card-image waves-effect waves-block waves-light">
<img src="media/images/snowboard.jpg">
</div>
<div class="card-content">
<span class="card-title activator grey-text text-darken-4">Snowboard<i class="mdi-navigation-more-vert right"></i></span>
</div>
<div class="card-reveal">
<span class="card-title grey-text text-darken-4"><h4>Snowboard</h4><i class="mdi-navigation-close right"></i></span>
<p class="flow-text">Here is some more information about this product that is only revealed once clicked on.</p>
</div>
</div>
</section>
</div>
<div class="col hide-on-small-only s12 m2 l1">
<div style="height: 1px;">
<ul class="section table-of-contents pinned" style="top: 0px;">
<li><a href="#sports" class="">Sports</a></li>
</ul>
</div>
</div>
</div>
</div>
Вы немного потеряли в именах. Усы собираются угадать, какой шаблон должен быть включен по названию. Это сказало,
{{> section}}
включает в себя section.mustache
, Так как он появляется в вашем section.mustache
Двигатель пытается рекурсивно вставить его в себя. По-видимому, это приводит к бесконечному циклу, который заканчивается на уровне вложенности 100 с ошибкой, которую вы получили.
Вы должны переименовать content.html
в content.mustache
и включать контент:
{{> content}}
Надеюсь, поможет.
Других решений пока нет …