包含CI文件最简单的方法是什么? 假设我想在example.com上加入http://example.com/ci/index.php/mycontroller/
example.com不运行CI而我不能包含('ci / index.php / mycontroller')。
答案 0 :(得分:3)
由于我似乎无法调用CI控制器的功能,所以我决定用jQuery简单地加载页面是最简单的:
$('#myDiv').load('ci/index.php/mycontroller', {}, function(){
$('#myDiv #loading').hide();
$('#myDiv #data').slideDown(500);
});
答案 1 :(得分:1)
假设您已将PHP配置为allow url includes,只需...
include('http://example.com/ci/index.php/mycontroller/');
(需要PHP 4.3.0 +)
答案 2 :(得分:0)
根据您要输出的内容,您应该能够设置REQUEST_URI
或CI用于确定请求的任何内容,然后只包含引导程序文件......
编辑:实际上,我认为反过来会更好,如果可能的话(再次,这取决于你想要做什么 - 所以请告诉我们)。我的意思是创建一个只包含脚本的CodeIgniter控制器......
答案 3 :(得分:0)
如果您只想显示CI脚本的输出,您可以打开URL,阅读内容并输出它们 - 或使用readfile()
。从CI应用程序的角度来看,请求将来自包含服务器(而不是最终用户),并且传递cookie /会话变量将需要使用类似cURL的东西。
如果您确实想要包含源代码,那么这是可能的,但存在安全风险。关于这个主题有几个SO问题:
他们注意到(除其他事项外)要包含您需要确保CI网站不执行页面的源,而只是输出php文件的内容,实际上包括来自URL的代码是非常危险。
您基本上信任所包含的站点(以及请求所经历的所有服务器)以提供(良好)代码,然后包含服务器将毫无疑问地执行。