如何在codeigniter中读取当前域url?

如何在codeigniter中读取当前域url?,codeigniter,Codeigniter,假设我有一个显示http://localhost.com/welcome/blah_blah,从这个url我只希望得到http://localhost.com/插入页面 怎么做 我知道echo current_url()提供完整的url。但我只想要http://localhost.com不包括控制器名称、类别名称等 预期产出 如果我的基本url=http://www.exaple.com/folder&当前url=http://exaple.com/folder/class/method/bla

假设我有一个显示
http://localhost.com/welcome/blah_blah
,从这个url我只希望得到
http://localhost.com/
插入页面

怎么做

我知道
echo current_url()提供完整的url。但我只想要
http://localhost.com
不包括控制器名称、类别名称等

预期产出

如果我的基本url=
http://www.exaple.com/folder
&当前url=
http://exaple.com/folder/class/method/blah_blah
,那么我想要的域名是
example.com
而不是
www.example.com


我是。

在php中,您可以通过此函数获得它

function siteURL() {
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    $domainName = $_SERVER['HTTP_HOST'] . '/';
    return $protocol . $domainName;
}

在php中,您可以通过以下函数获得它

function siteURL() {
    $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    $domainName = $_SERVER['HTTP_HOST'] . '/';
    return $protocol . $domainName;
}
您可以从url帮助器使用
base\u url()
。它返回不带index.php的网站域,如
config.php

附加信息后更新:

如果您只想要域名而不想要子域(www.),那么使用您发布的额外信息就可以了:

$this->load->helper('url');
$url_parts = parse_url(current_url());
echo str_replace('www.', '', $url_parts['host']);
但是,如果您仍然需要http或https,则这将完成此工作:

$this->load->helper('url');
$url_parts = parse_url(current_url());
echo $url_parts['scheme'] . '://' . str_replace('www.', '', $url_parts['host']);
但是,这只会删除www.子域,但如果可能存在其他子域,则可以很容易地进行调整。

您可以从url帮助器中使用
base\u url()
。它返回不带index.php的网站域,如
config.php

附加信息后更新:

如果您只想要域名而不想要子域(www.),那么使用您发布的额外信息就可以了:

$this->load->helper('url');
$url_parts = parse_url(current_url());
echo str_replace('www.', '', $url_parts['host']);
但是,如果您仍然需要http或https,则这将完成此工作:

$this->load->helper('url');
$url_parts = parse_url(current_url());
echo $url_parts['scheme'] . '://' . str_replace('www.', '', $url_parts['host']);

但是,这只会删除www.子域,但如果可能存在其他子域,则可以很容易地进行调整。

将以下函数添加到url\u helper.php,然后调用
getDomain()
,就像调用
base\u url()


将以下函数添加到url\u helper.php,然后调用
getDomain()
,就像调用
base\u url()


简单使用以下代码,您将获得当前域名。它的http或https

 $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    $domainName = $_SERVER['HTTP_HOST'] . '/';
    $url =  $protocol . $domainName;

简单使用以下代码,您将获得当前域名。它的http或https

 $protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "https://" : "http://";
    $domainName = $_SERVER['HTTP_HOST'] . '/';
    $url =  $protocol . $domainName;


当然,您必须首先加载URL帮助程序
$this->load->helper('URL')对不起!没有帮助。假设我已经设置了$base\u url=“www.example.com/project”,那么这个逻辑将不起作用。我问了当前的url…实际上你在编辑之前的初始问题中没有提到这一点。我已经用另一个解决方案更新了我的答案。当然,您必须首先加载URL帮助程序
$this->load->helper('URL')对不起!没有帮助。假设我已经设置了$base\u url=“www.example.com/project”,那么这个逻辑将不起作用。我问了当前的url…实际上你在编辑之前的初始问题中没有提到这一点。我已经用另一个解决方案更新了我的答案。是的,这会起作用,但他正在使用CodeIgniter,它的一个助手中已经内置了这个功能。谢谢!我稍后会试试这个。如果我能用codeigniter得到这个结果,那就太好了。我要的是codeigniter解决方案,而不是如何创建一个php函数来解决这个问题。@MirkoBrombin你是对的,我在回答中提到了这就是php函数。请检查CI解决方案的其他答案您可以编辑anwser或添加新anwser以帮助他人。谢谢,这会起作用,但他使用的是CodeIgniter,它的一个助手已经内置了这个功能。谢谢!我稍后会试试这个。如果我能用codeigniter得到这个结果,那就太好了。我要的是codeigniter解决方案,而不是如何创建一个php函数来解决这个问题。@MirkoBrombin你是对的,我在回答中提到了这就是php函数。请检查CI解决方案的其他答案您可以编辑anwser或添加新anwser以帮助他人。Thanksi尝试使用
echo$this->getDomain()显示但它显示错误
致命错误:在第33行的D:\xampp\htdocs\ecc\application\controllers\calculate.php中调用未定义的方法calculate::getDomain(),只需像base\u url()一样调用getDomain(),因为您已在帮助中添加了该函数。我测试了您的代码,但这不是我想要的。您基本上已经自定义了
基本url()
,同样,我想自定义
当前url()
。如何做到这一点?例如:如果我的基本url=
http://www.exaple.com/folder
&当前url=
http://exaple.com/folder/class/method/blah_blah
,那么我想要的域名是
example.com
而不是
www.example.com
@糟糕的时机哦,对不起。我想这会对你有帮助。我们可以找到任何其他的方法,只要它起作用。使用$this->getDomain();如果在类中使用,则直接调用它。我试图使用
echo$this->getDomain()显示它但它显示错误
致命错误:在第33行的D:\xampp\htdocs\ecc\application\controllers\calculate.php中调用未定义的方法calculate::getDomain(),只需像base\u url()一样调用getDomain(),因为您已在帮助中添加了该函数。我测试了您的代码,但这不是我想要的。您基本上已经自定义了
基本url()
,同样,我想自定义
当前url()
。如何做到这一点?例如:如果我的基本url=
http://www.exaple.com/folder
&当前url=
http://exaple.com/folder/class/method/blah_blah
,那么我想要的域名是
example.com
而不是
www.example.com
@糟糕的时机哦,对不起。我想这会对你有帮助。我们可以找到任何其他的方法,只要它起作用。使用$this->getDomain();如果在类中使用,则直接调用它