получить текущую страницу не полный URL - PullRequest
0 голосов
/ 25 августа 2011

Можно ли сохранить текущую страницу в переменной (не полный URL-адрес), используя php

Так что, если моя страница www.mywebsite.com/news/bob

, я ищу, чтобы получить /bobв переменной.

Ответы [ 4 ]

1 голос
/ 25 августа 2011

см. это переменная

$_SERVER['PATH_INFO']

возможно вам нужно

basename($_SERVER['PATH_INFO']);
1 голос
/ 25 августа 2011

$ _ SERVER ['PATH_INFO'], кажется, не существует в моей установке.Не уверен, что это за история, но если она не моя, она может быть не вашей, поэтому вот несколько альтернатив.

$current_page = '/' . basename($_SERVER['PHP_SELF']);
$current_page = '/' . basename($_SERVER['REQUEST_URI']);
$current_page = '/' . basename($_SERVER['SCRIPT_NAME']);

Я считаю $ _SERVER ['PHP_SELF'] весьма надежным.

Если вам нравятся регулярные выражения, вы можете попробовать

$current_page = preg_replace('/(.*?\/)+(.*)$/', '/$2', $_SERVER['PHP_SELF']);
1 голос
/ 25 августа 2011
 <?PHP $file_name = $_SERVER['PHP_SELF']; ?>
0 голосов
/ 05 июня 2012

Если вы используете $ _SERVER ['PHP_SELF'] для включенных или обязательных файлов, то он вернет текущий файл, а не URL-адрес текущей страницы. На компьютерах с Windows единственными надежными параметрами являются $ _SERVER ['REQUEST_URI'] или $ _SERVER ['HTTP_X_ORIGINAL_URL'], однако они также включают любую строку запроса.

Чтобы получить нужную часть, вам понадобится убрать строку запроса с конца URL.

$current_page = $_SERVER['REQUEST_URI'];
$current_page = substr($current_page, 0, strpos($current_page, "?")); //removes query string
$current_page =  = '/' . array_pop(array_filter(explode("/", $current_page)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...