加载CI控制器在同一台服务器

问题描述:

如何可以包括在常规PHP页面笨内容在同一台服务器上,但不是CI应用程序的一部分吗?加载CI控制器在同一台服务器

比如我想从CI头加载到WordPress的。在同一台服务器上包含CI控制器(例如index.php/mycontroller/header /)的最佳方式是什么?

http://codeigniter.com/forums/viewthread/88635/

这是矫枉过正,为的file_get_contents($网址)或类似的,效果会更好。但是,它可能适用于您的情况:

$CI_INDEX = '/path/to/your/codeigniter/index.php'; 
$path = '/controller/method'; 
$_SERVER['PATH_INFO'] = $path; 
$_SERVER['REQUEST_URI'] = $path; 

chdir(dirname($CI_INDEX)); 
ob_start(); 
require($CI_INDEX); 
$output = ob_get_contents(); 
ob_end_clean(); 
die($output); 

你有没有考虑过在你的WordPress页面使用iframe?

<iframe src="http://my-site-url/index.php/mycontroller/header"></iframe> 

这可能是最简单的解决方案。

当你试图从外部源包装与HTML内容,这可以很容易地放置在目标网站的HTML注释(或其他识别标记),然后使用PHP分裂/爆炸的含量来实现。 。

我已经使用这个方法来创建一些小型网站的MSN金钱这有那我就简单地使用:

list($header_html) = explode('<!-- Header -->', file_get_contents($url)); 

是比这稍微复杂,涉及缓存和各种其他疯狂,但在它的基础上,如果WordPress允许它使用的方法。

使用PHP的内置的file_get_contents()。只要确保使用完整的HTTP路径,而不是相对路径。例如:

<?php 
    file_get_contents('http://your.server.com/codeigniter-path/controller/'); 

这应该做的伎俩。