一尘不染

site_url()和base_url()有什么区别?

php

正如我在一些资源已阅读,base_url()site_url()功能codeigniter几乎是一样的,虽然我的版本笨的(2.1.3)没有在它的config.php文件一SITE_URL()(在config目录)。

但是自从我看到带有参数的site_url()却从未见过base_url()不持有任何参数以来,它们之间有任何区别吗?


阅读 389

收藏
2020-05-29

共1个答案

一尘不染

echo base_url(); // http://example.com/website
echo site_url(); // http://example.com/website/index.php

如果您想通过URL访问资源(例如CSS,JS,图像),请使用base_url(),否则site_url()效果更好。

有关详细参考,请在CodeIgniter中检查这两个功能。

public function site_url($uri = '')
    {
        if (empty($uri))
        {
            return $this->slash_item('base_url').$this->item('index_page');
        }
        $uri = $this->_uri_string($uri);
        if ($this->item('enable_query_strings') === FALSE)
        {
            $suffix = isset($this->config['url_suffix']) ? $this->config['url_suffix'] : '';
            if ($suffix !== '')
            {
                if (($offset = strpos($uri, '?')) !== FALSE)
                {
                    $uri = substr($uri, 0, $offset).$suffix.substr($uri, $offset);
                }
                else
                {
                    $uri .= $suffix;
                }
            }
            return $this->slash_item('base_url').$this->slash_item('index_page').$uri;
        }
        elseif (strpos($uri, '?') === FALSE)
        {
            $uri = '?'.$uri;
        }
        return $this->slash_item('base_url').$this->item('index_page').$uri;
    }

基本网址功能。

public function base_url($uri = '')
        {
            return $this->slash_item('base_url').ltrim($this->_uri_string($uri), '/');
        }
2020-05-29