CodeIgniter - >获取相对于基本网址的当前网址

时间:2012-09-03 13:36:20

标签: codeigniter function url

尝试URI::uri_string()但无法使用base_url。

网址:http://localhost/dropbox/derrek/shopredux/ahahaha/hihihi
返回:dropbox/derrek/shopredux/ahahaha/hihihi

http://localhost/dropbox/derrek/shopredux/只返回一个空字符串。

我希望第一个电话返回“ahahaha / hihihi”,第二个电话返回“”。有这样的功能吗?

11 个答案:

答案 0 :(得分:52)

// For current url
echo base_url(uri_string());

答案 1 :(得分:27)

如果加载了url帮助程序,请使用

current_url();

会更好

答案 2 :(得分:10)

尝试使用“uri”细分,例如:

$this->uri->segment(5);   //To get 'ahahaha'
$this->uri->segment(6);   //To get 'hihihi

形成你的第一个网址......你也可以从第二个URl获得第5个分段(5),分段(6),因为它们是空的。

每个段函数计数从localhost开始为'1'和同步段

答案 3 :(得分:9)

我看到这篇文章很老了。但在版本CI v3中,这是答案:

echo $this->uri->uri_string();

由于

答案 4 :(得分:7)

对于参数或没有参数URL使用此:

方法1:

 $currentURL = current_url(); //for simple URL
 $params = $_SERVER['QUERY_STRING']; //for parameters
 $fullURL = $currentURL . '?' . $params; //full URL with parameter

方法2:

$full_url = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";

方法3:

base_url(uri_string());

答案 5 :(得分:5)

 //if you want to get parameter from url use:
 parse_str($_SERVER['QUERY_STRING'], $_GET);
 //then you can use:
 if(isset($_GET["par"])){
      echo $_GET["par"];
 }
 //if you want to get current page url use:
 $current_url = current_url();

答案 6 :(得分:1)

运行最新的Code Igniter 3.10

$this->load->helper('uri'); // or you can autoload it in config

print base_url($this->uri->uri_string());

答案 7 :(得分:0)

我不知道是否有这样的功能,但是使用$ this-> uri-> uri_to_assoc()可以从$ _GET参数中获得一个关联数组。 有了这个,以及您所在的控制器,您就知道了URL的样子。 在你上面的URL中,这意味着你将在控制器dropbox中,数组将是这样的:

array("derrek" => "shopredux", "ahahaha" => "hihihi");

有了这个,你应该能够自己做这个功能。

答案 8 :(得分:0)

在CI v3中,您可以尝试:

function partial_uri($start = 0) {
    return join('/',array_slice(get_instance()->uri->segment_array(), $start));
}

这将删除$start参数指定的URL段的数量。如果您的网址是http://localhost/dropbox/derrek/shopredux/ahahaha/hihihi,则:

partial_uri(3);  # returns "ahahaha/hihihi"

答案 9 :(得分:0)

您可以使用一些Codeigniter函数和一些核心函数,并进行组合以使用查询字符串获得URL。 我找到了解决此问题的方法。

base_url($this->uri->uri_string()).strrchr($_SERVER['REQUEST_URI'], "?");

,如果您加载了URL助手,那么您也可以current_url().strrchr($_SERVER['REQUEST_URI'], "?");

答案 10 :(得分:0)

<?php $currentMenu =  $this->uri->segment(2); ?>
<ul>
   <li class="nav-item <?= ($currentMenu == 'dashboard') ?  'active' : '' ?>"> 
       <a href="<?= site_url('/admin/dashboard'); ?>" class="nav-link"><i data- 
         feather="pie-chart"></i> Dashboard</a>

   </li>
</ul

这对我有用