我有两个字符串并替换它们,所以我只得到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
,它是localhost的子文件夹。
答案 0 :(得分:12)
查看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
)
答案 1 :(得分:1)
更完整的例子:
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]";