<?php
$template = '<h1>{$title}</h1><h2>{$subheading}</h2>';
function render($str) {
$title = 'Delayed String Parsing';
$subheading = 'As demonstrated by the following sample code';
$defined_variable_keys = array_keys($defined_variables); $parsed_string = $str;
for ($i = 0; $i < count($defined_variable_keys); $i++) { $var_name = $defined_variable_keys[$i];
$parsed_string = str_replace('{$' . $var_name . '}', $defined_variables[$var_name], $parsed_string); }
return $parsed_string;
}
echo render($template);
PD9waHAKCiR0ZW1wbGF0ZSA9ICc8aDE+eyR0aXRsZX08L2gxPjxoMj57JHN1YmhlYWRpbmd9PC9oMj4nOyAKCmZ1bmN0aW9uIHJlbmRlcigkc3RyKSB7CgkkdGl0bGUgPSAnRGVsYXllZCBTdHJpbmcgUGFyc2luZyc7Cgkkc3ViaGVhZGluZyA9ICdBcyBkZW1vbnN0cmF0ZWQgYnkgdGhlIGZvbGxvd2luZyBzYW1wbGUgY29kZSc7CgoJJGRlZmluZWRfdmFyaWFibGVzID0gZ2V0X2RlZmluZWRfdmFycygpOwoKCSRkZWZpbmVkX3ZhcmlhYmxlX2tleXMgPSBhcnJheV9rZXlzKCRkZWZpbmVkX3ZhcmlhYmxlcyk7CgkkcGFyc2VkX3N0cmluZyA9ICRzdHI7Cglmb3IgKCRpID0gMDsgJGkgPCBjb3VudCgkZGVmaW5lZF92YXJpYWJsZV9rZXlzKTsgJGkrKykgewoJCSR2YXJfbmFtZSA9ICRkZWZpbmVkX3ZhcmlhYmxlX2tleXNbJGldOwoJCSRwYXJzZWRfc3RyaW5nID0gc3RyX3JlcGxhY2UoJ3skJyAuICR2YXJfbmFtZSAuICd9JywgJGRlZmluZWRfdmFyaWFibGVzWyR2YXJfbmFtZV0sICRwYXJzZWRfc3RyaW5nKTsKCX0KCXJldHVybiAkcGFyc2VkX3N0cmluZzsKfQoKZWNobyByZW5kZXIoJHRlbXBsYXRlKTs=