在Codeigniter配置中添加自定义函数,例如site_url()&;base_url()


add custom function to Codeigniter config such as site_url() & base_url()

我们需要有一个新的函数,如base_url(),名为main_site_url。

我刚刚将其添加到application/config:中的主配置文件中

$config['main_site_url'] = 'http//iksna.com/';

并将此代码发送到/system/core/config.php

/**
 * Main Site URL
 * Returns main_site_url . index_page [. uri_string]
 *
 * @access  public
 * @param   string  the URI string
 * @return  string
 */
function main_site_url($uri = '')
{
    if ($uri == '')
    {
        return $this->slash_item('main_site_url').$this->item('index_page');
    }
    if ($this->item('enable_query_strings') == FALSE)
    {
        $suffix = ($this->item('url_suffix') == FALSE) ? '' : $this->item('url_suffix');
        return $this->slash_item('main_site_url').$this->slash_item('index_page').$this->_uri_string($uri).$suffix;
    }
    else
    {
        return $this->slash_item('main_site_url').$this->item('index_page').'?'.$this->_uri_string($uri);
    }
}
// -------------------------------------------------------------

但现在,main_site_url(); 无法访问它

是否可通过以下方式访问:$this->config->main_site_url()

我在使用main_site_url()时出现此错误;

错误:

Call to undefined function main_site_url()

您可以通过以下方式创建自己的:

步骤1:

在您的application/config/config.php中添加此,$config['main_site_url'] = 'http//iksna.com/';

步骤2:

system/core/Config.php中添加了一个新的函数main_site_url(),如base_url()site_url(),它们已经在那里定义:

public function main_site_url($uri = '', $protocol = NULL)
{
    $main_site_url = $this->slash_item('main_site_url');
    if (isset($protocol))
    {
        if ($protocol === '')
        {
            $main_site_url = substr($main_site_url, strpos($main_site_url, '//'));
        }
        else
        {
            $main_site_url = $protocol.substr($main_site_url, strpos($main_site_url, '://'));
        }
    }
    return $main_site_url.ltrim($this->_uri_string($uri), '/');
}

步骤3:

现在在system/helpers/url_helper.php 中添加以下代码

if ( ! function_exists('main_site_url'))
{
    function main_site_url($uri = '', $protocol = NULL)
    {
        return get_instance()->config->main_site_url($uri, $protocol);
    }
}

现在,您可以在控制器、库和视图中的任何位置使用main_site_url(),就像base_url()site_url()等一样。

转到

/system/application/libraries

创建一个名为的文件

custom_function.php

在custom_function.php 中添加函数main_site_url

使用调用控制器文件中的函数

$this->custom_function->main_site_url();