8.7 对URL传递的参数进行编/解码
视频讲解:光盘TMlx810 对URL传递的参数进行编/解码.mp4
8.7.1 对URL传递的参数进行编码
使用URL参数传递数据,就是在URL地址后面加上适当的参数。URL实体对这些参数进行处理。使用方法如下:
显而易见,这种方法会将参数暴露,因此,本节针对该问题讲述一种URL编码方式,对URL传递的参数进行编码。
URL编码是一种浏览器用来打包表单输入数据的格式,是对用地址栏传递参数进行的一种编码规则。如在参数中带有空格,则传递参数时就会发生错误,而用URL编码后,空格转换成“%20”,这样错误就不会发生了,对中文进行编码也是同样的情况,最主要的一点就是对传递的参数起到了隐藏的作用。
在PHP中对查询字符串进行URL编码,可以通过urlencode()函数实现,该函数的语法如下:
string urlencode( string str)
urlencode()函数实现对字符串str进行URL编码。
【例8.11】本例应用urlencode()函数对URL传递的参数值“编程词典”进行编码,显示在IE地址栏中的字符串是URL编码后的字符串,实例代码如下:(实例位置:光盘TMsl811)
<a href="index.php? id=<?php echo urlencode("编程词典"); ?>">编程词典</a>
运行结果如图8.11所示。
图8.11 对URL传递的参数进行编码
说明
对于服务器而言,编码前后的字符串并没有什么区别,服务器能够自动识别。这里主要是为了讲解URL编码的使用方法。在实际应用中,对一些非保密性的参数不需要进行编码,读者可根据实际情况有选择地使用。
8.7.2 对URL传递的参数进行解码
对于URL传递的参数直接使用$_GET[]方法即可获取。而对于进行URL加密的查询字符串,则需要通过urldecode()函数对获取后的字符串进行解码,该函数的语法如下:
string urldecode( string str)
urldecode()函数可将URL编码后的str查询字符串进行解码。
【例8.12】在例8.11中应用urlencode()函数实现了对字符串“编码词典”进行编码,将编码后的字符串传给变量id,本例将应用urldecode()函数对获取的变量id进行解码,将解码后的结果输出到浏览器,实例代码如下:(实例位置:光盘TMsl812)
<a href="index.php? id=<?php echo urlencode("编程词典"); ?>">编程词典</a> <?php if(isset($_GET['id'])){ echo "您提交的查询字符串的内容是:".urldecode($_GET['id']); } ?>
运行结果如图8.12所示。
图8.12 对URL传递的参数进行解码
发表评论:
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。