У CodeIgniter есть синтаксический анализатор шаблонов, чтобы сделать именно то, что вы хотите.
Вот несколько примеров из их документ:
$this->load->library('parser');
$data = array(
'blog_title' => 'My Blog Title',
'blog_heading' => 'My Blog Heading'
);
$this->parser->parse('blog_template', $data);
А вот HTML
<html>
<head>
<title>{blog_title}</title>
</head>
<body>
<h3>{blog_heading}</h3>
{blog_entries}
<h5>{title}</h5>
<p>{body}</p>
{/blog_entries}
</body>
</html>
Полная документация по нему можно найти на их сайте here
Я знаю другую шаблонизации для использования PHP в HTML используются разные синтаксисы, но я не знаком с тем, что использует один Codeigniter. Я знаю, что Laravel использует синтаксис Blade, который является '{{$ variable}}', поэтому, возможно, поиск другого движка/рамки - это путь. –