正如我在一些资源中所读到的,base_url()并且site_url()函数codeigniter几乎相同,尽管我的codeigniter(2.1.3)版本的config.php文件(在config目录中)中没有site_url().
然而,他们之间是否有任何区别,因为我看到带参数的site_url()并且从未见过base_url()没有?
Fas*_* kk 69
echo base_url(); // http://example.com/website
echo site_url(); // http://example.com/website/index.php
Run Code Online (Sandbox Code Playgroud)
如果你想要一个URL访问资源(如css,js,image),使用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;
}
Run Code Online (Sandbox Code Playgroud)
基本URL功能.
public function base_url($uri = '')
{
return $this->slash_item('base_url').ltrim($this->_uri_string($uri), '/');
}
Run Code Online (Sandbox Code Playgroud)
sik*_*der 18
site_url:返回base_url + index_page + uri_string
base_url:返回base_url + uri_string
看到的两个函数的源代码在:https://github.com/EllisLab/CodeIgniter/blob/606fee0e2e0aa6a906db82e77090e91f133d7378/system/core/Config.php
Akh*_*nan 12
目的site_url是在您的URL 更改时,您的页面变得更加便携.site_url与index.php文件一起显示.
可以选择将段作为字符串或数组传递给函数.
echo site_url("news/local/123");
Run Code Online (Sandbox Code Playgroud)
它将给出:http://ci.com/index.php/news/local/123
你甚至可以将段作为数组传递:
$segments = array('news', 'local', '123');
echo site_url($segments);
Run Code Online (Sandbox Code Playgroud)
base_url是没有index_page或url_suffix附加.比如site_url,您可以将字段作为字符串或数组提供.
如果您希望对资源使用URL访问,base_url则可以为文件提供字符串,例如图像或样式表site_url就足够了.
echo base_url("/images/icons/image.png");
Run Code Online (Sandbox Code Playgroud)