codeurl php,PHP urldenodeur()与ldecode():对URL参数进行编码与解码

本文详细介绍了URL编码的作用和原理,包括URL的组成部分和格式。并以PHP为例,展示了如何使用urlencode()函数进行URL编码以及urldecode()函数进行解码,帮助理解在Web开发中如何处理URL参数的编码和解码问题。
摘要由CSDN通过智能技术生成

在介绍 URL 编码与解码之前,首先来了解一下什么是 URL?

URL 是统一资源定位系统(uniform resource locator)的缩写,是在因特网的万维网服务程序上用于指定信息位置的一种表示方法。它最初是由“蒂姆·伯纳斯·李”发明用来作为万维网的地址的。现在已经被万维网联盟编制为互联网标准 RFC1738。URL 中可以包含单词,例如(c.biancheng.net)或者 IP 地址,例如(127.0.0.1)。

URL 由三部分组成,分别是资源类型、存放资源的主机域名、资源文件名,其格式如下所示:

protocol://prefix.domain:port/path/filename

格式说明如下:

protocol:用于指定使用的传输协议(常见的传输协议有 http、https、ftp 等);

prefix:用于定义域名前缀(例如 www);

domain:用于定义域名(如 biancheng.net);

dort:用于定义主机上的端口号(默认值为 80);

path:由零或多个“/”符号隔开的字符串,一般用于表示服务器上的某个目录或文件地址。如果省略则表示服务器的根目录;

filename:用于定义文件或资源的名称(例如 index.html)。

URL 编码是一种浏览器用来打包表单输入数据的格式,是对用地址栏传递参数进行的一种编码规则。如果参数中带有空格,在用 URL 传递参数时就会发生错误,而用 URL 编码后,空格会被转换成“%20”这样错误就不会发生了。另外对 URL 进行编码,可以对传递的参数起到隐藏作用。

对 URL 传递的参数进行编码

在 PHP中,对字符串进行 URL 编码可以使用 urlencode() 函数来完成,该函数的语法格式如下:

urlencode(string $str)

其中,$str 为要编码的字符串。

【示例】使用 urlencode() 函数对 URL 进行编码。

$url = 'http://c.biancheng.net/index.php?name=';

$str = 'C语言中文网';

$str = urlencode($str);

$url .= $str;

echo '编码后的 url:'.$url;

?>

运行结果如下:

编码后的 url:http://c.biancheng.net/index.php?name=C%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91

对于服务器而言,编码前后的字符串并没有什么区别,服务器能够自动识别,这里是为了讲解 URL 编码的使用方法,而在实际应用中,对一些非保密性的参数不需要进行编码,需要根据实际情况有选择地使用。

对 URL 编码的字符串进行解码

对于 URL 传递的参数可以直接使用 $_GET[] 获取即可,但是对于进行了 URL 加密的字符串,则需要通过 urldecode() 函数对获取后的字符串进行解码才行。该函数的语法格式如下:

urldecode(string $str)

其中,$str 为要解码的字符串。

【示例】使用 urldecode() 对编码的字符串进行解码。

$url = 'http://c.biancheng.net/index.php?name=';

$str = 'C语言中文网';

$str = urlencode($str);

$url .= $str;

echo '编码后的 url:'.$url.'
';

echo '解码后的 url:'.urldecode($url);

?>

运行结果如下:

编码后的 url:http://c.biancheng.net/index.php?name=C%E8%AF%AD%E8%A8%80%E4%B8%AD%E6%96%87%E7%BD%91

解码后的 url:http://c.biancheng.net/index.php?name=C语言中文网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值