PHP urlencode()函数
“urlencode()”是PHP中默认提供的函数之一。该函数用于对URL进行编码。它的工作原理并不像看起来那样复杂。相反,它非常容易理解,因为它的输出(或结果)是一个包含除了(-_.)之外的所有非字母数字字符的字符串。这些字符会被替换为百分号(%)后跟两个十六进制数字。为了更清楚地理解它,让我们详细看一下它的语法:
语法
string urlencode( $input )
参数:
如上述语法中所示,此函数仅接受一个参数”$input”,用于保存您要编码的实际URL。
返回值(或输出):
此函数在成功时返回一个已编码的字符串。因此,编码或结果字符串包含除了“-_.”之外的所有非字母数字字符,这些字符被“%”符号替换,并后跟两个十六进制数字,如上面讨论的那样。该函数以与从www表单(或表单模板)发布的数据编码相同的方式对URL进行编码。
在这里我们一直在讨论URL编码,但是如果您对URL一无所知,那么如果我们对URL进行一些基本讨论,那将是很好的。
URL(统一资源定位符)
URL是统一资源定位符的缩写。它可以被理解为互联网上可用的特定文件或文档(网页)的地址。为了更详细地理解这一点,考虑以下示例:
示例:
JAVATPOINT的URL是https://www.javatpoint.com/,而这个页面的地址是https://www.javatpoint.com/PHP/Urlen()。此URL地址中使用的元素如下所示:
1. URL的前缀部分”http://”通常指定访问位置使用的协议。除此之外还有许多其他URL前缀,包括以下几种:
- http - 这是一个常见的网页或网站目录,可以通过HTTP访问。
- FTP - 它代表文件传输协议,通常用于从FTP服务器下载文件。
- mailto - 一个电子邮件地址(经常用于将浏览器重定向到电子邮件客户端)
- file - 位于本地存储设备上的文件(虽然在技术上不是URL,因为它不引用基于互联网的位置)
2. “www.”代表 __ 万维网 ,用于区分内容。这部分URL通常不是必需的,很多时候可以省略或忽略。
例如,键入” http://javatpoint.com “也可以让您进入 javatpoint 网站。
3.”javatpoint.com”部分被视为该网站的域名,域名的最后部分(或结束部分)被称为域名的后缀(TLD)。通常,它有助于指定网站在互联网上的类型或位置。为了更详细地理解这一点,考虑以下示例:
示例
像“javatpoint.com”这样的网站,域名后缀是“.com”,表示商业用途。还有许多其他域名后缀可用,比如“.org”表示组织,“co.uk”用于英国,可以根据需要使用。要拥有一个域名,您可以通过域名注册局注册该名称。
4. “PHP”和”urlen()”是 目录 网页 所在的服务器位置,此处给出的网页在两个目录深处。在大多数服务器中,public_html目录是包含HTML文件的默认目录。
您也可以通过在网页浏览器的地址栏(或搜索框)中键入地址来手动输入URL。
例如,您可能输入打印在名片上的网站URL以访问公司的网站。但是,当您单击 rel=”nofollow” target=”_blank”>链接 或打开 书签 时,大多数URL会自动显示。
如果URL中的服务器名称无效或该网站不再可用,在这种情况下,您的浏览器可能会显示“服务器未找到”错误。如果URL中的路径不正确,则服务器可能会以 404错误 (表示路径不正确)做出响应。
urlencode()函数确切是什么功能
它基本上执行URL编码,在其中,所有字符串或多个字符组合。根据一些预定义规则,特殊字符会被转换为特定格式。以便这些转换或编码的URL字符串可以使用 ASCII字符集 通过Internet进行传输。
然而,URL通常包含ASCII集以外的字符,因此URL必须转换为有效的ASCII格式。通常,URL编码将不安全的ASCII字符替换为“%”后跟两个十六进制数字,如前面所讨论的。此外,URL不能包含空格。因此,urlencode()函数通常将空格替换为加号(+)符号或%20。为了理解它,让我们看一些示例:
程序1:
<!DOCTYPE html>
<html>
<body>
<?php
// PHP program to illustrate urlencode function
echo urlencode("https://www.javatpoint.com/") . "\n";
?>
</body>
</html>
输出:
https%3A%2F%2Fwww.javatpoint.com%2F
程序2
<!DOCTYPE html>
<html>
<body>
<?php
// PHP program to illustrate urlencode function
echo urlencode("https://www.javatpoint.com/");
echo urlencode("https://www.javatpoint.com/php-tutorial");
echo urlencode("https://www.javatpoint.com/C++ tutorial");
echo urlencode("https://www.javatpoint.com/javascript tutorial");
?>
</body>
</html>
输出:
https%3A%2F%2Fwww.javatpoint.com%2F
https%3A%2F%2Fwww.javatpoint.com%2Fphp-tutorial
https%3A%2F%2Fwww.javatpoint.com%2FC%2B%2B+tutorial
https%3A%2F%2Fwww.javatpoint.com%2Fjavascript+tutorial
关于urlencode()函数的一些重要观点
- 如果变量可能与HTML实体匹配,请小心。浏览器解析类似&、©和£的内容,实际实体会被使用,而不是所需的变量名称。
- urlencode()函数非常方便,可以编码字符串,以便在URL的查询部分中使用,这样可以更容易地将重要变量传递给下一页。
- 在其他语言如JavaScript和ASP中,也有提供编码URL的函数。然而,像其他不同语言提供的urlencode()函数也是根据相同基本原则工作的。
例如 –
PHP中有urlencode()函数,JavaScript中可以使用encodeURIcomponent()函数来编码URL,ASP中使用Server.URLEncode()函数。
注意:JavaScript函数将空格编码为%20。