PHP 获取 URL 的 URI 部分


PHP get URI parts of URL

我有 2 个字符串并替换它们,所以我只得到 URI 部分。

$base_url = 'http://localhost/project/';
$url      = 'http://localhost/project/controller/action/param1/param2';

我正在检查 URI 部分。

$only_segments = str_replace($base_url, '', $real_url);

基本上我这样做:{url} - {base_url} = {only_segments}

然后我可以得到片段:

$parts = explode('/', $only_segments);
print_r($parts);

问题:

我走在正确的道路上,还是可以用 $_SERVER['REQUEST_URI'] 更容易完成?

注意:我不希望在URI部分中project,它是本地主机的子文件夹。

查看parse_url() .这将使您大部分时间到达那里。您需要做的就是删除作为基本 URL 一部分的路径部分。

print_r(parse_url('http://localhost/project/controller/action/param1/param2'));
Array
(
    [scheme] => http
    [host] => localhost
    [path] => /project/controller/action/param1/param2
)

一个更完整的例子:

var_dump(parse_url(http://lambo-car-dealer.com/Lambo/All+Models/2018/?limits=10&advance_options=no));

输出:

array(4) {
  ["scheme"]=>
  string(4) "http"
  ["host"]=>
  string(48) "lambo-car-dealer.com"
  ["path"]=>
  string(44) "/Lambo/All+Models/2018/"
 ["query"]=>
 string(121) "limits=10&advance_options=no"

}

也可以这样得到它:

$URL = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
$URI = "$_SERVER[REQUEST_URI]";