在codeIgniter中,我自动加载url_helper.php
在我的网站上我也有一个phpbb论坛,因此在codeigniter中我试图include
来自论坛的脚本。
问题是,phpbb尝试声明一个函数redirect()
,但它已经在url_helper.php中声明,所以我得到以下错误
无法重新声明redirect()(之前已在声明中声明) C:\ Apache24 \ htdocs \ system \ helpers \ url_helper.php:531)in C:\ Apache24 \ htdocs \ forum \ includes \ functions.php在线 2562
我该怎么办呢?我可以在控制器功能中取消设置功能或删除url_helper吗?
答案 0 :(得分:1)
还是有点黑客,但请看:http://php.net/manual/en/function.rename-function.php
您可以创建自己的url_helper,包含CI url_helper,并在include后调用:
rename_function('redirect','ci_redirect');
答案 1 :(得分:0)
好的,我找到了解决方法。在codeigniter的帮助程序库中,在声明函数之前,它首先检查它是否已经被声明。所以....
在我的控制器类的构造函数方法中,我加载了我需要的所有phpbb文件。这样它声明phpbb重定向函数和codeigniter“哦,已经有一个重定向函数”,所以它没有声明重定向函数...问题解决了
这样的事情:
class Register extends CI_Controller{
public function __construct()
{
/* START phpbb */
.
.
.
require_once('forum/common.php');
require_once('forum/includes/functions_user.php');
require_once('forum/includes/functions_module.php');
/* END phpbb */
//Continue as normal
parent::__construct();
}
public function index(){
//Your stuff works as normal now
}
}