将自定义函数添加到Codeigniter配置,例如site_url()& BASE_URL()

时间:2015-03-31 07:13:23

标签: php codeigniter

我们需要一个名为main_site_url()的新函数,例如base_url(),以便能够像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()

2 个答案:

答案 0 :(得分:2)

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

第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()等。

答案 1 :(得分:0)

转到

/system/application/libraries

创建一个名为

的文件
custom_function.php

在custom_function.php中添加函数main_site_url

使用

在控制器文件中调用函数
$this->custom_function->main_site_url();