Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/234.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:将变量插入模板文件-include()或file_get_contents()?_Php_Variables_Templates - Fatal编程技术网

PHP:将变量插入模板文件-include()或file_get_contents()?

PHP:将变量插入模板文件-include()或file_get_contents()?,php,variables,templates,Php,Variables,Templates,我正在进行一个项目,在这个项目中,我将所有HTML内容与PHP代码的其余部分分开。每个需要为PHP变量解析HTML的实例都通过函数调用发送。其中大多数处理来自数据库的动态数据 模板文件的一个简单示例: <div id='{$data['id']}'>{$data['text']}</div> 函数的作用是:简单地定位正确的文本文件,加载变量并以html的形式返回字符串。这就是我遇到的问题: public static function load($templat

我正在进行一个项目,在这个项目中,我将所有HTML内容与PHP代码的其余部分分开。每个需要为PHP变量解析HTML的实例都通过函数调用发送。其中大多数处理来自数据库的动态数据

模板文件的一个简单示例:

<div id='{$data['id']}'>{$data['text']}</div>
函数的作用是:简单地定位正确的文本文件,加载变量并以html的形式返回字符串。这就是我遇到的问题:

    public static function load($template, $data=array()) {
       ob_start();
       include ( TEMPLATE . $template .'.tpl' );
       ob_flush();
    }
我尝试过使用include()和file_get_contents(),但是没有用-我正在寻找一个简单的解决方案,我可以使用{$data['var']}语法,最好保留模板HTML作为一个简单变量,这样就可以将它添加到输出中

我试图避免使用eval()


有人能给我一些指导吗?

我过去也做过同样的事情,您可以这样修改下面的代码:

public static function load($template, $data=array()) {
    ob_start();
    include ( TEMPLATE . $template .'.tpl' );
    $getData = ob_get_clean();
    preg_match_all("|{([^>].*)}|U", $getData, $getDataArr, PREG_SET_ORDER);
    if (is_array($getDataArr) && count($getDataArr) > 0) {
        foreach ($getDataArr as $php) {
            if (strpos($php[1],'$') !== false) {
                $getData= str_replace($php[0], (eval('return $'.str_replace('$', '', $php[1]).';')), $getData);
            }
        }
    }

    echo $getData;
}
public static function load($template, $data=array()) {
    ob_start();
    include ( TEMPLATE . $template .'.tpl' );
    $getData = ob_get_clean();
    preg_match_all("|{([^>].*)}|U", $getData, $getDataArr, PREG_SET_ORDER);
    if (is_array($getDataArr) && count($getDataArr) > 0) {
        foreach ($getDataArr as $php) {
            if (strpos($php[1],'$') !== false) {
                $getData= str_replace($php[0], (eval('return $'.str_replace('$', '', $php[1]).';')), $getData);
            }
        }
    }

    echo $getData;
}