1. 对URL 传递的参数进行编码

使用URL 传递参数数据,就是在 URL地址后面加上适当的参数。URL 实体对这些参数进行处理。其使用的方式如下面的格式:

显而易见,这种方法将会把参数暴露出来,安全系数较低。因此,这一章会针对该问题讲述一种 URL 的编码方式,对 URL 传递的参数进行编码。

URL 编码是一种浏览器用来打包表单输入数据的格式,是对用地址栏传递参数进行的一种编码规则。如在参数中带有空格,则用 URL 传递参数时就会发生错误,而用 URL编码后,空格转换成%20.这样错误就不会发生了。 对中文进行编码也是童谣的情况,最主要的一点就是对传递的参数起到了隐藏的作用。

在PHP 中对查询字符串进行URL 编码,可以通过 urlencode()函数实现,该函数的语法如下:

urlencode(string)

urlencode()函数实现将字符串 string 进行 URL 编码。

在下面的实例中,应用 urlencode()函数对 URL 传递的参数值进行编码,显示的字符串是

URL 编码后的字符串,其实现的代码如下所示:<?php

$url = urlencode('PHP中文网'); //把 PHP中文网 进行编码

echo "index.php?id=".$url;

?>

在浏览器中输入运行地址,按回车键,得到如下所示的运行结果:

index.php?id=PHP%E4%B8%AD%E6%96%87%E7%BD%91

说明:

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

2. 对URL 传递的参数进行解码

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

urldecode(string)

urldecode() 函数可将 URL 编码后的 string 字符串进行编码。

上面的例子中urlencode()函数把“PHP中文网” 进行编码,变成了“PHP%E4%B8%AD%E6%96%87%E7%BD%91”。

这里的例子应用urlencode() 函数对获取的编码进行解码,将解码后的结果输出来。其实现的代码如下所示:<?php

$url = urldecode("PHP%E4%B8%AD%E6%96%87%E7%BD%91"); // 把编码还原成 PHP中文网

echo $url;

?>

运行的结果如下所示:

PHP中文网

这里就可以清楚的看出 urldecode() 函数把 urlencode()函数编码后的字符串进行了还原。

php解析url编码,php对URL传参进行编码和解码解析相关推荐

  1. url传参参数编码的解码问题

    JS中encodeURIComponent(URL)编码与decodeURIComponent(URL)解码详解 (1)encodeURIComponent(url)函数 定义和用法 encodeUR ...

  2. html5 url 传参数,[实时数据]仪表板URL直接添加参数条件传参

    2.1 添加  SQL 数据集 在业务包中新建带参数的 SQL 数据集:select * from new_dian where 店性质 in ('${店性质}').${店性质}就是设置的参数变量,点 ...

  3. 【JS】url传参中文乱码的解决方法

    1.escape 和 unescape escape()不能直接用于URL编码,它的真正作用是返回一个字符的Unicode编码值. 采用unicode字符集对指定的字符串除0-255以外进行编码.所有 ...

  4. 微信小程序传参到后端解析出手机号(java实现)

    需要的Maven依赖 <dependency><groupId>com.alibaba</groupId><artifactId>fastjson< ...

  5. Spring/Boot/Cloud系列知识:SpringMVC 传参详解(下)

    (接上文<Spring/Boot/Cloud系列知识:SpringMVC 传参详解(上)>) 2.3.通过@PathVariable注解基于URL匹配符接收请求传参 为了便于开发人员实现更 ...

  6. thymeleaf 语法——th:text默认值、字符串连接、th:attr、th:href 传参、th:include传参、th:inline 内联、th:each循环、th:with、th:if

    文章目录 1.表达式 1.1.简单表达式 1.2.三元运算.条件表达式: 1.3.默认表达式 1.4.综合使用,属性值的 if - else 2.字符串连接.拼接 3.th:attr 的使用 4.th ...

  7. vue 如何将参数放到连接上_通过Vue路由传参的两种方式及Vue组件中接收参数的方式...

    1. Vue传参方式 1.1 通过动态路由传参 我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件.例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染.那 ...

  8. 微信小程序开发之页面传参

    这 传参主要是三种: 1.简单值传参如:id=1,string = asdfg之类,其中字符不包含特殊字符如?.=之类 2.含特殊字符传参如一个地址http://r.photo.store.qq.co ...

  9. mybatis中如何防止sql注入和传参

    环境 使用mysql,数据库名为test,含有1表名为users,users内数据如下 JDBC下的SQL注入 在JDBC下有两种方法执行SQL语句,分别是Statement和PrepareState ...

最新文章

  1. 为了提高工作效率:通过pycharm的模板代码减少重复工作
  2. OpenCV2.4.9 显示鼠标框选区域,其他部分全为零,鼠标创建ROI区域
  3. [改善Java代码]生成子列表后不要再操作原列表
  4. 设备坐标与逻辑坐标关系
  5. 【正则】匹配html标签里的内容,不含标签
  6. angular-js资料收集
  7. 为什么销售员贷款比较难?
  8. 教你玩转CSS响应式设计
  9. 编程萌新注意:别再这样问问题了!学会这样快速定位错误内容
  10. mysql面试题sql语句_数据库MySQL经典面试题之SQL语句
  11. 计算机应用技术基础考试分值,计算机一级考试内容包括哪些 试题分值上是如何分布的...
  12. 作用 和会话期 进程组_进程 进程组 会话的关系及作用
  13. linux把程序添加到全局环境变量
  14. jle汇编_X86汇编指令
  15. 【项目】#防翟天临老师翻车神器# ——实现文本查重
  16. Tableau画地图
  17. JAVA dwg转pdf的正确解法
  18. 百度地图离线开发V2.0
  19. R绘图 第八篇:绘制饼图(ggplot2)
  20. SQL语言的基础操作(二)

热门文章

  1. MATLAB从入门到精通:搭建一个 简单的Bp神经网络(附代码)
  2. 数据仓库建设从0到1-一文带你深入建设金融数仓体系
  3. 最全 Prometheus 踩坑集锦
  4. sql server修改索引名称_索引基本知识和索引优化
  5. 深度学习100例-卷积神经网络(CNN)识别验证码 | 第12天
  6. Google学术搜索方法
  7. 【图像处理opencv】_图像锐化
  8. 水声定位中的CBF波束形成原理
  9. 内存学习――为什么需要虚拟内存
  10. Reactor by Example--转