- 1
- 2
- 3
- 4
- 5
$this->_requestUri = 0 === strpos($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'])
? substr(
$_SERVER['REQUEST_URI'], strlen($_SERVER['SCRIPT_NAME'])
)
: $_SERVER['REQUEST_URI'];
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
+53
$this->_requestUri = 0 === strpos($_SERVER['REQUEST_URI'], $_SERVER['SCRIPT_NAME'])
? substr(
$_SERVER['REQUEST_URI'], strlen($_SERVER['SCRIPT_NAME'])
)
: $_SERVER['REQUEST_URI'];
"/test/index.php?a=2", "/test/index.php" => "/test/index.php"
"/?a=3", "/index.php" => "/?a=3"
Не пойму его смысл...
в первом вариванте. Второй аргумент у substr - начало. Только тут наверное урлы типа index.php/some/args, т.к. в обычном виде через "?" эти аргументы можно было бы вытащить из $_SERVER['QUERY_STRING']... Правда, у автора переменная как-то не так называется...
Результаты
Вход: /
Выход: REQUEST_URI = /, SCRIPT_NAME = /index.php
Вход: /index.php
Выход: REQUEST_URI = /index.php, SCRIPT_NAME = /index.php
Вход: /?a=2
Выход: REQUEST_URI = /?a=2, SCRIPT_NAME = /index.php
Вход: /index.php?a=2
Выход: REQUEST_URI = /index.php?a=2, SCRIPT_NAME = /index.php
Вход: index.php/some/args
Выход: REQUEST_URI = /index.php/some/args, SCRIPT_NAME = /index.php
Резюме: в $_SERVER['REQUEST_URI'] всегда лежит исходный запрос (ВНЕЗАПНО!), а в $_SERVER['SCRIPT_NAME'] — адрес скрипта, принявшего этот запрос (тоже внезапно).
То есть кому-то такая причудливость даже нравится.