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

mak*_*mba 20 url codeigniter function

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

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

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

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

小智 57

// For current url
echo base_url(uri_string());
Run Code Online (Sandbox Code Playgroud)

  • 需要加载URL帮助程序. (3认同)

use*_*431 30

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

current_url();
Run Code Online (Sandbox Code Playgroud)

会更好


Gau*_*164 10

尝试使用"uri"段,如:

$this->uri->segment(5);   //To get 'ahahaha'
$this->uri->segment(6);   //To get 'hihihi
Run Code Online (Sandbox Code Playgroud)

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

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


Kar*_*Mtl 10

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

echo $this->uri->uri_string();
Run Code Online (Sandbox Code Playgroud)

谢谢


Dan*_*Ali 10

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

方法1:

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

方法2:

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

方法3:

base_url(uri_string());
Run Code Online (Sandbox Code Playgroud)


ash*_*med 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();
Run Code Online (Sandbox Code Playgroud)


Shi*_*imu 0

我不知道是否有这样的函数,但是使用 $this->uri->uri_to_assoc() 你可以从 $_GET 参数中获得一个关联数组。有了这个,以及您所在的控制器,您就知道 URL 是什么样子了。在上面的 URL 中,这意味着您将位于控制器保管箱中,并且数组将如下所示:

array("derrek" => "shopredux", "ahahaha" => "hihihi");
Run Code Online (Sandbox Code Playgroud)

有了这个,你应该能够自己制作这样的功能。