【参数转义】地址参数的编码【告别配置文件】 『CMP4使用交流』 晨风交流论坛
CMP4的所有配置都可以通过地址传入参数的方式进行设置 如下面这个地址参数src,src地址本身其里面也需要传入它的参数,又有问号和&符号:- http://cmp.cenfun.com/cmp4/cmp.swf?src=src_handler.php?title={title}&rd={rd}
复制代码 在设置插件地址,背景地址等时,也会出现这样的情况 这样就会出现一个问题:
rd参数到底是cmp的,还是属于参数src的参数?
实际使用中,rd可能解析成了cmp的参数,这样src就丢失了一个参数,造成src地址不准确 为了解决这个问题,有的时候我们需要对cmp的参数进行转义,把它编码成一个独立的参数值形式 也就是要把下面这一段看成一个参数值- src_handler.php?title={title}&rd={rd}
复制代码 为此,专门写了一个简单工具供大家使用(其实就是调用 encodeURIComponent 和 decodeURIComponent 方法):
http://tools.cenfun.com/
如上面的编码后就是:- src_handler.php%3Ftitle%3D%7Btitle%7D%26rd%3D%7Brd%7D
复制代码 这样?和&符合都会进行转义,也就不会有上面的冲突了 这个值传到cmp后,cmp会自动将其转化回来 也就是工具中的解码
所以最后使用的地址就是:- http://cmp.cenfun.com/cmp4/cmp.swf?src=src_handler.php%3Ftitle%3D%7Btitle%7D%26rd%3D%7Brd%7D
复制代码 其他参数也是同样的办法
高手篇:告别配置文件
有了上面这个编码,其实我们可以完全告别配置文件config.xml了,所有配置参数都由地址参数传入 传入配置文件内容的参数就是config,如你的配置文件内容为:- <cmp name = "CMP4 - 地址参数转码" link = "http://bbs.cenfun.com/" />
复制代码 使用工具进行转码变成:- %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:- 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编码 |
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请
点击举报。