Codeigniter通过url或通过file_get_contents加载视图

时间:2018-04-01 15:33:15

标签: php codeigniter

我想知道是否可以通过url或file_get_contents加载视图? 我有一个html文件,位于文档根目录中的Codeigniter应用程序之外的公共文件夹中。

我试过了

$body = $this->load->view('http://dev.app.com/Assets/2018/03/411aa377c0e092ce.html',$data,true);

$email = $this->EmailsModel->get_email_by_id($campaign->email_id);
$email_contents = file_get_contents($email['file_location']);
$body = $this->load->view($email_contents,$data,true);

两者都给我这个错误无法加载请求的文件:

希望有人可以帮忙看看这个。

2 个答案:

答案 0 :(得分:1)

您无法通过字符串加载视图,无论它来自哪里,并像往常一样向其添加数据(因为字符串无法编译为php)。您可以通过$this->output->append_output($str)附加字符串但是允许您传递任何要替换的参数,并且您只能设置输出时无法返回。

您可以使用parser CI库,并在"视图"中使用相关变量。看起来像{some_var}并将数据传递给视图,就像通常使用parse_string()库的parser函数一样。

您也可以修改protected $_ci_view_pathsloader文件中的/system/core数组,将资源目录包含为检查视图的有效路径,然后使用{ {1}}加载您的观点但我尚未对此进行测试,并且不确定它是否有效。

此处可见类似方法:Loading view outside view folder with CodeIgniter

答案 1 :(得分:0)

你可以做一个curl请求来获取该文件的html响应(驻留在你的应用程序之外)。创建一个视图文件并显示它收到的数据。现在加载此视图文件并将响应传递给此视图文件。

相关问题