php parse_url的真正作用是什么?

z6psavjg  于 2022-10-30  发布在  PHP
关注(0)|答案(1)|浏览(131)

有人能告诉我parse_url()真正作用吗?
我也试着从这段代码中删除parse_url来找出区别,但是输出还是一样的。有人能给我点启发吗?谢谢。

<?php
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);

$parts = explode("/", $path);

$resource = $parts[3];

$id = $parts[4] ?? null;

echo $resource, ", ", $id;

echo $_SERVER['REQUEST_METHOD'];
f0brbegy

f0brbegy1#

parse_url解析给定的URL并将其拆分为多个部分:

示例1:完整URL

$url = 'http://example.com/test/example?id=2#detail'
$path = parse_url($url);
print_r($path);

结果:

Array
(
    [scheme] => http
    [host] => example.com
    [path] => /test/example/1/example/2
    [query] => id=2
    [fragment] => detail
)

使用第二个参数,您可以请求某个部分:

$url = 'http://example.com/test/example?id=2#detail'
$path = parse_url($url, PHP_URL_PATH);
print_r($path);

结果:

/test/example/1/example/2

示例2:仅路径

如果只给予一个路径(如$_SERVER['REQUEST_URI']),则会得到一个只有路径的数组。

$url = '/test/example/1/example/2'
$path = parse_url($url);
print_r($path);

结果:

Array
(
    [path] => /test/example/1/example/2
)

如果您只是询问路径,您将再次获得输入:

$url = '/test/example/1/example/2'
$path = parse_url($url, PHP_URL_PATH);
print_r($path);

结果:

/test/example/1/example/2

这就是为什么你看不出有什么不同。

相关问题