PHP - 解析当前URL

sol*_*sol 13 php parsing

我需要解析当前的url,以便在以下任何一种情况下:

http://mydomain.com/abc/
http://www.mydomain.com/abc/
Run Code Online (Sandbox Code Playgroud)

我可以获得"abc"的返回值(或者该位置的任何文本).我怎样才能做到这一点?

KJY*_*葉家仁 38

你可以使用parse_url();

$url = 'http://www.mydomain.com/abc/';

print_r(parse_url($url));

echo parse_url($url, PHP_URL_PATH);
Run Code Online (Sandbox Code Playgroud)

这会给你

Array
(
    [scheme] => http
    [host] => www.mydomain.com
    [path] => /abc/
)
/abc/
Run Code Online (Sandbox Code Playgroud)

更新:获取当前页面URL然后解析它:

function curPageURL() {
 $pageURL = 'http';
 if ($_SERVER["HTTPS"] == "on") {$pageURL .= "s";}
 $pageURL .= "://";
 if ($_SERVER["SERVER_PORT"] != "80") {
  $pageURL .= $_SERVER["SERVER_NAME"].":".$_SERVER["SERVER_PORT"].$_SERVER["REQUEST_URI"];
 } else {
  $pageURL .= $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
 }
 return $pageURL;
}

print_r(parse_url(curPageURL()));

echo parse_url($url, PHP_URL_PATH);
Run Code Online (Sandbox Code Playgroud)

curPageURL函数的来源


Age*_*rum 11

看看这个parse_url()功能.它会将URL分解为其组成部分.您关注的部分是路径,因此您可以PHP_URL_PATH作为第二个参数传递.如果您只想要路径的第一部分,则可以使用explode()/作为分隔符将其分解.

$url = "http://www.mydomain.com/abc/";
$path = parse_url($url, PHP_URL_PATH);
$pathComponents = explode("/", trim($path, "/")); // trim to prevent
                                                  // empty array elements
echo $pathComponents[0]; // prints 'abc'
Run Code Online (Sandbox Code Playgroud)