像Codeigniter一样,用香草PHP获得部分视图?

像Codeigniter一样,用香草PHP获得部分视图?,php,Php,我只是想知道是否有人能给我指出正确的方向,用纯PHP模仿下面的Codeigniter方法: $string = $this->load->view('myfile', $data, true); // where $data is an array of info to "fill in" the html on the page 我已经开始尝试使用fopen,但在将数据作为字符串变量最终发送到“主模板”之前,我似乎还不太清楚向文件发送数据的部分 目前,我被难倒了。我一直在研究他们

我只是想知道是否有人能给我指出正确的方向,用纯PHP模仿下面的Codeigniter方法:

$string = $this->load->view('myfile', $data, true); // where $data is an array of info to "fill in" the html on the page
我已经开始尝试使用
fopen
,但在将数据作为字符串变量最终发送到“主模板”之前,我似乎还不太清楚向文件发送数据的部分


目前,我被难倒了。我一直在研究他们的
\u ci\u load
方法,该方法提供了上述代码,但它深入到了更多的ci库中,这一点的全部目的是使“最简单的pur-php”方法成为可能。如果有任何人有任何建议、提示、教程链接,或者任何我在

中找不到的东西,我建议您研究使用
ob\u start()
ob\u get\u contents()
ob\u end\u clean()
函数。

我建议您考虑使用
ob\u start()
ob get\u contents(),和
ob\u end\u clean()
函数。

当我需要一些东西来快速返回模板的一部分时,我使用它

function view($file,$data) {
    extract($data);
    ob_start();
    if (is_file($file)) {
        include($file);
    }
    $return =  ob_get_clean();
    return $return;
}

您应该确保保护$file的内容。否则,任何人都可以加载他们想要的任何文件,并向其注入他们想要的数据。我通常仅在手动定义$file时使用此选项,而不是动态的。

当我需要快速返回模板的一部分时,我使用此选项

function view($file,$data) {
    extract($data);
    ob_start();
    if (is_file($file)) {
        include($file);
    }
    $return =  ob_get_clean();
    return $return;
}

您应该确保保护$file的内容。否则,任何人都可以加载他们想要的任何文件,并向其注入他们想要的数据。我通常仅在手动定义$file时使用此选项,没有任何动态特性。

我唯一能想到的改进方法是检查$data是否包含名为data的元素,以及在extract.kk之后是否未取消设置($data)。我会在一分钟内尝试,并让您知道它是如何运行的,谢谢!我只是在try catch中做了一点修改,以便在出现错误时可以得到一个漂亮的甚至空白的字符串。我唯一能想到的是检查$data是否包含一个名为data的元素,以及它是否在extract后未取消($data)。kk将在一分钟内尝试,并让您知道它是如何运行的,谢谢!我只是在try-catch中做了一点修改,以便在有错误的地方我可以得到一个很好的甚至是空白的字符串,但是值得一提的是,CodeIgniter是开源的-你可以去看看他们是如何做到的…@CmdrMoozy你没有读过
吗我一直在查看他们的_ci_load方法
?CodeIgniter就是这样做的!放错地方了,但无论如何,CodeIgniter是开源的-你可以去看看他们是怎么做到的…@CmdrMoozy你没读过
吗我一直在看他们的_ci_load方法
?CodeIgniter就是这样做的!