解析模板时,数组为字符串

时间:2019-03-16 12:30:37

标签: php arrays string parsing templates

我有2个文件,分别称为index.php和home.html。

这是index.php的内容:

$language = [
    'say' => 'Good Bye.',
];

function template($html)
{
    global $tmpl;
    global $language;

    $tmpl['static'] = 'Example';

    $tmpl['dynamic'] = $language;

    $file = sprintf('%s.html', $html);
    $f_skin = fopen($file, 'r');
    $skin = @fread($f_skin, filesize($file));
    fclose($f_skin);
    return preg_replace_callback(
            '/{\$([a-zA-Z0-9_]+)}/',
        function($matches) {
                global $tmpl; return (isset($tmpl[$matches[1]])?$tmpl[$matches[1]]:"");
            }, $skin
    );
}

echo template('home');

这是home.html内容:

<div class="tag">

{$static}

</div>

当我使用{$ static}时一切正常,但是,当我使用它时,出现错误:

{$dynamic['say']} 
//or
 {$dynamic->say}

我需要类似的东西才能从数组中获取价值。

0 个答案:

没有答案