📜  完整的 url php (1)

📅  最后修改于: 2023-12-03 15:39:07.443000             🧑  作者: Mango

完整的 URL PHP

什么是 URL?

URL(Uniform Resource Locator)是一个用于标识互联网上资源(如网页或文件)的字符串。它由若干个部分组成,包括协议、主机名、端口号、路径、查询字符串和片段标识符等。

例如下面这个 URL 标识了百度搜索的网址:

https://www.baidu.com/s?wd=php

其中,“https” 是协议名,“www.baidu.com” 是主机名,“/s” 是路径,“?wd=php” 是查询字符串。

在 PHP 中处理 URL

PHP 内置了几个用于处理 URL 的函数,包括 parse_urlurlencodeurldecode 等。

解析 URL

parse_url 函数可以将一个完整的 URL 字符串解析成一个关联数组,包括其各个组成部分。例如:

$url = 'https://www.baidu.com/s?wd=php';
$parsed_url = parse_url($url);
print_r($parsed_url);

输出:

Array
(
    [scheme] => https
    [host] => www.baidu.com
    [path] => /s
    [query] => wd=php
)

可以看到,parse_url 解析出了 URL 中的协议、主机名、路径和查询字符串。

编码和解码 URL

由于 URL 中可能含有特殊字符,如空格、+&= 等,因此需要对其进行编码和解码。

urlencode 函数可以对字符串进行 URL 编码,将特殊字符转义成 % 后跟着两个十六进制数字。例如:

$str = 'hello world & php';
$urlencoded = urlencode($str);
echo $urlencoded;   // 输出:hello+world+%26+php

可以看到,空格被转义成了 +& 被转义成了 %26

urldecode 函数可以对 URL 编码后的字符串进行解码,将 % 后跟着两个十六进制数字的字符转义回原来的字符。例如:

$urlencoded = 'hello+world+%26+php';
$str = urldecode($urlencoded);
echo $str;   // 输出:hello world & php

可以看到,+ 被解码成了空格,%26 被解码成了 &

参考链接