PHP | urlencode() 函数

2024 年 8 月 29 日 | 5 分钟阅读

“urlencode()”是PHP默认提供的函数之一。此函数用于对URL进行编码。它的工作原理并不像看起来那么复杂。相反,它非常简单易懂,因为它会返回一个包含除(-_.)以外的所有非字母数字字符的字符串。这些字符被替换为百分号(%)后跟两个十六进制数字。为了更清楚地理解这一点,让我们详细看看它的语法。

语法

参数

正如您在上面的语法中看到的,此函数只接受一个参数“$input”,用于保存您要编码的实际URL。

返回值(或输出)

成功时,此函数返回一个编码后的字符串。因此,编码后的字符串包含除“-_. ”之外的所有非字母数字字符,这些字符被“%”符号替换,后跟两个十六进制数字,如我们上面所讨论的。此函数以与www表单(或表单模板)提交的数据编码相同的方式编码URL。

在这里,我们一直在讨论URL编码,但如果您对URL一无所知。那么,如果我们讨论一些关于URL的基础知识,那将是很好的。

URL

它是统一资源定位符的缩写。它可以被理解为互联网上某个特定文件或文档(网页)的地址。为了更详细地理解这一点,请考虑以下示例:

示例

JAVATPOINT的URL是https://tpointtech.cn/,这个页面的地址是https://tpointtech.cn/PHP/Urlen()”。这个URL地址中使用的元素如下:

1. URL的“http://”部分被认为是URL前缀,它通常指定用于访问位置的协议。除了这个之外,还有许多其他的URL前缀,它们如下:

  1. http - 这是一个典型的网页或网站目录,可通过HTTP访问。
  2. FTP - 代表文件传输协议,通常用于从FTP服务器下载文件。
  3. mailto - 一个电子邮件地址(通常用于将浏览器重定向到电子邮件客户端)
  4. file- 位于本地存储设备上的文件(尽管它在技术上不是URL,因为它不指向基于Internet的位置)

2. “www.”代表万维网,用于区分内容。URL的这一部分通常不是必需的,并且很多时候可以省略或忽略。

例如,输入“http://javatpoint.com”仍然可以访问javatpoint网站。

  1. 这个“javatpoit.com”部分被认为是网站的域名,域名中最后一部分(或末尾部分)称为域后缀(或TLD)。通常,它有助于指定网站在Internet上的类型或位置。为了更详细地理解这一点,请考虑以下示例:

示例

像“javatpoint.com”这样的网站,域名后缀是“.com”,表示商业。还有许多其他的域名后缀,例如“.org”,表示组织,“co.uk”代表英国,可以根据需要使用。要获得自己的域名,您可以通过域名注册商注册名称。

4. “PHP”和“urlen()”是 目录,其中 网页 位于服务器上。这里给出的网页有两级深度。在大多数服务器中,public_html目录是包含HTML文件的默认目录。

您也可以通过在Web浏览器中的地址栏(或搜索框)中输入地址来手动输入URL。

例如,您可能会输入印在名片上的网站URL来访问公司的网站。然而,大多数URL会在您单击rel="nofollow" target="_blank"链接或打开书签时自动出现。

如果URL中的服务器名称无效或该网站不再可用,在这种情况下,您的浏览器可能会显示“找不到服务器”错误。如果URL中的路径不正确,服务器可能会响应404错误(表示路径不正确)。

urlencode() 函数到底做什么?

它基本上执行URL编码,其中所有字符串或字符组合。特殊字符根据一些预定义的规则转换为特定格式。这样,这些转换后的或编码后的URL字符串就可以使用ASCII字符集在Internet上传输。

然而,URL通常包含ASCII字符集以外的字符,因此URL必须转换为有效的ASCII格式。通常,URL编码会将不安全的ASCII字符替换为“%”,后跟两个十六进制数字,如我们前面所讨论的。此外,URL不能包含空格。因此,urlencode()函数通常会将空格替换为加号(+)或%20。为了理解这一点,让我们看一些例子:

程序 1

输出

https%3A%2F%2Fwww.javatpoint.com%2F

程序2

输出

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实体匹配的变量。浏览器会解析诸如&amp、&copy和&pound之类的内容,而不是使用期望的变量名来使用实际的实体。
  • urlencode() 函数在编码要用于URL查询部分的字符串时非常有用,因为它提供了一种更简单的方式将必要的变量传递给下一个页面。
  • 在JavaScript和ASP等其他语言中,也提供了对URL进行编码的函数。然而,像urlencode()这样的函数在其他不同语言中提供的函数也遵循相同的基本原理。

例如 -

PHP有urlencode()来编码URL,在JavaScript中您可以使用encodeURIcomponent()函数,在ASP中使用Server.URLEncode()函数。

注意:JavaScript函数将空格编码为%20。