如何在同一台服务器上的常规PHP页面中包含CodeIgniter内容,但不包含CI应用程序的一部分?
例如,我正在尝试将CI中的标头加载到Wordpress中。什么是在同一台服务器上包含CI控制器(例如; index.php / mycontroller / header /)的最佳方法?
答案 0 :(得分:1)
使用PHP的内置file_get_contents()。只需确保使用完整的HTTP路径,而不是相对路径。例如:
<?php
file_get_contents('http://your.server.com/codeigniter-path/controller/');
这应该可以解决问题。
答案 1 :(得分:1)
来自http://codeigniter.com/forums/viewthread/88635/
这是过度的,因为file_get_contents($ url)或类似的会更好。但是,它可能适用于您的情况:
$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);
答案 2 :(得分:0)
您是否考虑在Wordpress页面中使用iframe?
<iframe src="http://my-site-url/index.php/mycontroller/header"></iframe>
这可能是最简单的解决方案。
答案 3 :(得分:0)
当您尝试使用外部源的HTML包装内容时,可以通过在目标站点中放置HTML注释(或其他可识别的标记),然后使用PHP来拆分/分解内容来轻松实现。
我已经使用这种方法为MSN Money创建了几个微站点。然后我会简单地使用:
list($header_html) = explode('<!-- Header -->', file_get_contents($url));
它稍微复杂一点,包括缓存和各种其他疯狂,但在它的基础上,如果WordPress允许它使用的方法。