Это старая тема, но для тех, кто может увидеть это.
Хотя я не уверен, что это лучший метод, я всегда возвращал заполнители include и анализировал их через массив.
<?php //page.php
$html = "<html>
<head>
<title>{PageTitle}<title>
</head>
...
</html>";
return $html;
тогда просто
function parseHTML($pageContents, $placeholders){
foreach($placeholders as $placeholder=>$value){
str_replace("\{{$placeholder}\}",$value,$pageContents);
}
return $pageContents;
}
$placeholders = ['PageTitle'=>'This is my page title'];
$pageContents = include "page.php";
$parsedHTML = parseHTML($pageContents, $placeholder);
вывод будет выглядеть как
<html>
<head>
<title>This is my page title<title>
</head>
...
</html>
Как я уже сказал, я не на 100% уверен, насколько это эффективно. Я использую его, потому что большинство моих проектов довольно маленькие.