PHP получает URI-части 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'] ?
Примечание: Я не хочу project
в частях URI, это подпапка localhost.
6
Author: Ing. Michal Hudak, 2013-11-13
2 answers
Загляните в 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
)
11
Author: John Conde, 2013-11-13 14:25:29
Более полный пример:
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]";
0
Author: Mike Q, 2017-12-22 21:49:20