Моя цель – получить все после имени домена в строку. Как и в mysite.com/page/page2, вы получите строку «page / page2». Это я могу сделать, однако это начинает давать мне проблемы, когда, например, сайт находится в подпапке, а не в корневом каталоге, тогда папка, в которой находится сайт, также будет включена в строку, и если я не буду использовать mod_rewrite для получите довольно ссылки, он также добавит index.php в строку.
Итак, мне понадобится трюк или два, чтобы сценарий понял, находится ли сайт в подпапке, такой как mysite.com/sitefolder/page/page2, и что она все равно приведет к строке
page/page2
Если сайт не использует mod_rewrite, а url – mysite.com/sitefolder/index.php/page/page2, он все равно приведет к строке
page/page2
Имейте в виду, что у меня есть URL и USE_MOD_REWRITE, определенные в файле конфигурации, поэтому нет необходимости в магии. Я просто не знаю, как это сделать. Я знаю, что могу сделать $ _SERVER ['REQUEST_URI'], чтобы получить строку, но тогда index.php все равно будет в ней. Извините, если я не объясню достаточно хорошо, но вся помощь приветствуется.
rtrim любые трейлинг-косые черты
$ request = parse_url ($ _ SERVER ['REQUEST_URI']); $ path = $ request ["path"]; $ result = rtrim (str_replace (basename ($ _ SERVER ['SCRIPT_NAME']), '', $ path), '/');
РЕДАКТИРОВАТЬ
$request = parse_url($_SERVER['REQUEST_URI']); $path = $request["path"]; $result = trim(str_replace(basename($_SERVER['SCRIPT_NAME']), '', $path), '/'); $result = explode('/', $result); $max_level = 2; while ($max_level < count($result)) { unset($result[0]); } $result = '/'.implode('/', $result);
с$request = parse_url($_SERVER['REQUEST_URI']); $path = $request["path"]; $result = trim(str_replace(basename($_SERVER['SCRIPT_NAME']), '', $path), '/'); $result = explode('/', $result); $max_level = 2; while ($max_level < count($result)) { unset($result[0]); } $result = '/'.implode('/', $result);
Вы можете использовать $SERVER['REQUEST_URI']
а затем изменить строку с помощью функции substr()
PHP. Итак, поместите URI в переменную, а затем запустите эту функцию, чтобы удалить первое Х-число символов (длину имени домена) с начала и Х-число символов с конца (index.php = 9).
Например:
$new_url = substr($uri_variable, 10, -9);
Где $uri_variable
– это $SERVER[
REQUEST_URI '] `, 10 – символ после имени домена, а -9 – символы в index.php.