我使用 codeigniter 作为我网站的框架。但是,我需要集成来自在单独的 Tomcat 服务器上构建的应用程序的内容。
有没有一种方法可以让我在内容区域的顶部继续提供基于模板的导航元素、横幅图像和 codeigniter 应用程序,同时通过 Tomcat 将正文传送到网站的较低内容区域?我很清楚可以通过 View 提供页面片段,但是 View 中的内容可以来 self 的 Tomcat 应用程序吗?
最佳答案
一种可能的方法是让您的 CodeIgniter Controller 通过 file_get_contents 或 phpcurl 检索幕后的内容。
CI Controller 内的片段:
//-- snippet --
... other controller boilerplate ...
$data = array();
$tomcat_content = @file_get_contents('http://mytomcat.server.url/page.jsp');
$data['tomcat_content'] = $tomcat_content;
$this->load->view('relevant_view', $data);
//-- snippet --
来自 relevant_view.php 的片段:
<!-- snippet -->
<div class="tomcat-content">
<?php echo (empty($tomcat_content))? 'Missing Content' : $tomcat_content;?>
</div>
<!-- snippet -->
需要考虑的一些注意事项:
(1) Tomcat 应用服务器源页面(Basic Auth 或显式登录页面)是否有任何安全措施?
(2)访问Tomcat应用服务器有代理或类似问题吗?
(3) 有问题的 PHP 是否设置为从外部源检索和/或它是否具有编译的 cURL 功能?
(4) Tomcat 端的延迟将影响 CodeIgniter 端。如果源内容相对静态,则可以通过 CodeIgniter 的输出类缓存来缓解其中一些问题。
如果有大量页面,可以将外部内容检索代码提取到自定义 CodeIgniter 库或帮助程序中,然后加载。
关于Codeigniter 和 Tomcat 集成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9442592/