打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
【参数转义】地址参数的编码【告别配置文件】 『CMP4使用交流』 晨风交流论坛
CMP4的所有配置都可以通过地址传入参数的方式进行设置
如下面这个地址参数src,src地址本身其里面也需要传入它的参数,又有问号和&符号:
  1. http://cmp.cenfun.com/cmp4/cmp.swf?src=src_handler.php?title={title}&rd={rd}
复制代码
在设置插件地址,背景地址等时,也会出现这样的情况
这样就会出现一个问题:

rd参数到底是cmp的,还是属于参数src的参数?

实际使用中,rd可能解析成了cmp的参数,这样src就丢失了一个参数,造成src地址不准确
为了解决这个问题,有的时候我们需要对cmp的参数进行转义,把它编码成一个独立的参数值形式
也就是要把下面这一段看成一个参数值
  1. src_handler.php?title={title}&rd={rd}
复制代码
为此,专门写了一个简单工具供大家使用(其实就是调用 encodeURIComponent 和 decodeURIComponent 方法):

http://tools.cenfun.com/

如上面的编码后就是:
  1. src_handler.php%3Ftitle%3D%7Btitle%7D%26rd%3D%7Brd%7D
复制代码
这样?和&符合都会进行转义,也就不会有上面的冲突了
这个值传到cmp后,cmp会自动将其转化回来
也就是工具中的解码

所以最后使用的地址就是:
  1. http://cmp.cenfun.com/cmp4/cmp.swf?src=src_handler.php%3Ftitle%3D%7Btitle%7D%26rd%3D%7Brd%7D
复制代码
其他参数也是同样的办法

高手篇:告别配置文件

有了上面这个编码,其实我们可以完全告别配置文件config.xml了,所有配置参数都由地址参数传入
传入配置文件内容的参数就是config,如你的配置文件内容为:
  1. <cmp name = "CMP4 - 地址参数转码" link = "http://bbs.cenfun.com/" />
复制代码
使用工具进行转码变成:
  1. %3Ccmp%20name%20%3D%20%22CMP4%20-%20%E5%9C%B0%E5%9D%80%E5%8F%82%E6%95%B0%E8%BD%AC%E7%A0%81%22%20link%20%3D%20%22http%3A%2F%2Fbbs.cenfun.com%2F%22%20%2F%3E
复制代码
再由config参数传入cmp:
  1. http://cmp.cenfun.com/cmp4/cmp.swf?config=%3Ccmp%20name%20%3D%20%22CMP4%20-%20%E5%9C%B0%E5%9D%80%E5%8F%82%E6%95%B0%E8%BD%AC%E7%A0%81%22%20link%20%3D%20%22http%3A%2F%2Fbbs.cenfun.com%2F%22%20%2F%3E
复制代码
你可以看到标题变成了“CMP4 - 地址参数转码”,也就是配置已经传入cmp
注意config参数的值必须是一个标准的cmp4配置文件格式+标准的XML文件格式

如果像这样传入的是整个配置文件的内容,除了上面的编码方法,实际上还支持base64编码
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
干货|TOP20漏洞安全编码规范指南
xss漏洞之进制转换
代码审计入门总结
关于uboot重定位方面的总结和问题
JavaScript利用URL向后台传入中文参数乱码问题解决之道!
【第849期】如何让前端更安全?——XSS攻击和防御详解
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服