在PHP中,获取请求路径通常是指获取当前HTTP请求的URL路径。这可以通过全局变量$_SERVER来实现,该变量包含了服务器和执行环境的信息。
<?php
// 获取完整的请求URL
$requestUrl = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http") . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";
echo "完整的请求URL: " . $requestUrl . "\n";
// 获取请求路径(不包括查询字符串)
$requestPath = $_SERVER['REQUEST_URI'];
echo "请求路径: " . $requestPath . "\n";
// 获取请求路径(不包括主机名和查询字符串)
$requestPathWithoutQueryString = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
echo "请求路径(不包括查询字符串): " . $requestPathWithoutQueryString . "\n";
?>$_SERVER['REQUEST_URI']有时候会包含查询字符串?原因:$_SERVER['REQUEST_URI']包含了完整的请求URI,包括路径和查询字符串。
解决方法:
$requestPathWithoutQueryString = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);解决方法:
$requestPath = $_SERVER['REQUEST_URI'];
if (strpos($requestPath, '/admin') === 0) {
// 处理管理员相关逻辑
} else {
// 处理普通用户相关逻辑
}解决方法:
$protocol = (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] === 'on' ? "https" : "http");
$requestUrl = $protocol . "://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]";通过以上方法,可以有效地获取和处理PHP中的请求路径。