【问题标题】:CodeIgniter loading view via url or via file_get_contentsCodeIgniter 通过 url 或通过 file_get_contents 加载视图
【发布时间】:2018-09-10 23:38:50
【问题描述】:

我想知道是否可以通过 url 或 file_get_contents 加载视图?我有一个 html 文件,它位于我的 Codeigniter 应用程序之外的 Document Root 文件夹中,可以公开访问。

我试过了

$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);

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

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    您可以执行 curl 请求来获取该文件的 html 响应(位于您的应用程序之外)。制作一个视图文件并显示它接收到的数据。现在加载这个视图文件并将响应传递给这个视图文件。

    【讨论】:

      【解决方案2】:

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

      您可以使用 CI 的 parser 库,让“视图”中的相关变量看起来像 {some_var},然后像使用 parserparse_string() 函数一样将数据传递到视图图书馆。

      您还可以修改/system/coreloader 文件中的protected $_ci_view_paths 数组,以将资产目录作为检查视图的有效路径,然后只需使用2018/03/411aa377c0e092ce.html 加载您的视图但我没有对此进行测试,不确定它是否有效。

      此处看到的类似方法:Loading view outside view folder with CodeIgniter

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-01
        • 2015-02-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多