【问题标题】:Could not include codeigniter controller files in external php script无法在外部 php 脚本中包含 codeigniter 控制器文件
【发布时间】:2016-04-11 16:39:15
【问题描述】:

我已使用此代码形式的外部 php 脚本来包含 codeigniter 控制器文件。

include_once "codeigniter/index.php/user";

它不起作用。

'user' 是我的控制器文件。

但是我可以通过将'user' 设置为默认控制器页面来包含

$route['default_controller']="user";

并用作:

include_once "codeigniter/index.php";

但是如果我需要其他控制器文件怎么办?

更新:

另外,控制器文件可以通过外部php脚本链接:

<a href="codeigniter/index.php/user">click here</a>

【问题讨论】:

  • include_once "../codeigniter/index.php/user";试试这个
  • 您需要参考文档。这是完全错误的方式。切勿在任何文件中包含控制器。
  • 那也行不通。
  • 哦。那么我如何从外部 php 脚本中包含它。没有办法吗?
  • 为什么不使用 HMVC bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc 来更轻松地调用控制器。普通的codeigniter你将无法使用。

标签: php codeigniter include


【解决方案1】:

当 URI 不存在时,可以告诉 CodeIgniter 加载默认控制器,当仅请求您的站点根 URL 时就是这种情况。要指定默认控制器,请打开您的 application/config/routes.php 文件并设置此变量:

$route['default_controller'] = 'User';

其中User 是您要使用的控制器类的名称。如果您现在加载主 index.php 文件而不指定任何 URI 段,您将默认看到您的 Hello World 消息。

在您的情况下,您可以通过以下方式调用任何控制器:-

http://localhost/codeigniter/index.php/controller_name/method_name/

这个tutorial link 会更好地解释:)

要在外部调用 CI 控制器,您应该使用 cURL

  $curl_handle=curl_init();
  curl_setopt($curl_handle,CURLOPT_URL,'Your_CI_CONTROLLER_URL');
  curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
  curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
  $buffer = curl_exec($curl_handle);
  curl_close($curl_handle);
  if (empty($buffer)){
      print "Nothing returned from url.<p>";
  }
  else{
      print $buffer;
  }

【讨论】:

  • 如果我需要除 'user' 之外的其他控制器文件怎么办?
  • 您可以通过以下方式调用其他控制器:- localhost/codeigniter/index.php/controller_name/method_name
  • 来自外部 php 脚本??
  • 您需要使用 cURL 来实现此功能。使用 cURL 你可以调用 CI 控制器方法并将参数传递给它。
  • 。谢谢。但请参阅问题的最后一段以及我是如何为“用户”做的。并且可能有包含其他控制器文件的方法。
猜你喜欢
  • 2022-12-03
  • 2014-08-24
  • 2017-11-13
  • 1970-01-01
  • 2023-03-16
  • 2018-03-29
  • 1970-01-01
  • 1970-01-01
  • 2017-10-15
相关资源
最近更新 更多