我想知道是否可以通过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);
两者都给我这个错误无法加载请求的文件:
希望有人可以帮忙看看这个。
答案 0 :(得分:1)
您无法通过字符串加载视图,无论它来自哪里,并像往常一样向其添加数据(因为字符串无法编译为php)。您可以通过$this->output->append_output($str)
附加字符串但是不允许您传递任何要替换的参数,并且您只能设置输出时无法返回。
您可以使用parser
CI库,并在"视图"中使用相关变量。看起来像{some_var}
并将数据传递给视图,就像通常使用parse_string()
库的parser
函数一样。
您也可以修改protected $_ci_view_paths
中loader
文件中的/system/core
数组,将资源目录包含为检查视图的有效路径,然后使用{ {1}}加载您的观点但我尚未对此进行测试,并且不确定它是否有效。
答案 1 :(得分:0)
你可以做一个curl请求来获取该文件的html响应(驻留在你的应用程序之外)。创建一个视图文件并显示它收到的数据。现在加载此视图文件并将响应传递给此视图文件。