晨风交流论坛_CMP_CChat_Flash_音乐_视频_播放器_live直播_聊天室

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 20853|回复: 9

[教程] 【参数转义】地址参数的编码【告别配置文件】

[复制链接]
发表于 2009-12-21 13:10:39 | 显示全部楼层 |阅读模式
官方QQ群:102348392 | 捐赠CMP
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编码
发表于 2009-12-21 13:24:50 | 显示全部楼层
沙发,还是大哥猛呀
发表于 2009-12-21 14:10:20 | 显示全部楼层
本帖最后由 useful 于 2009-12-21 14:32 编辑

老大很牛

现在 cmp4的大部分功能,都可以相应的在使用cmp.swf的时候,通过url改变不一样的参数进行改变,如果有些东西想让使用播放器的时候加载(比如计数器),那么他人就能简单的通过url绕过去了,就可以直接使用。能不能让播放器判断一个参数(由服务端设置),才决定是否可以url传递某些参数。

现在想到的判断就只有两个。

是否可以js与flash交互。
是否url可以传递某些参数。
发表于 2009-12-21 14:12:32 | 显示全部楼层
传参高手都知道.至于编码,多谢提醒
发表于 2009-12-21 15:08:24 | 显示全部楼层
障眼法了,所有字符都可以URL16编码下,
bbs.cenfun.com 可以搞成 %62%62%73%2E%63%65%6E%66%75%6E%2E%63%6F%6D
发表于 2011-2-12 01:26:26 | 显示全部楼层
谁能给一个实际的实例啊 01.<cmp name = "CMP4 - 地址参数转码" link = "http://bbs.cenfun.com/" />
地址参数转码 的实际例子
发表于 2011-12-14 21:20:41 | 显示全部楼层
谁能给一个实际的实例啊 01.<cmp name = "CMP4 - 地址参数转码" link = "http://bbs.cenfun.com/" />
地址参数转码 的实际例子


同楼上一样同求次实例代码

另一个主题帖子http://bbs.cenfun.com/thread-17873-1-1.html
发表于 2012-3-5 00:02:13 | 显示全部楼层
学习一下,研究研究,再学习中进步,谢谢楼主
发表于 2012-10-22 15:36:08 | 显示全部楼层
发表于 2012-10-23 05:12:41 | 显示全部楼层
来学习一下了!~

QQ|客服QQ44023478|Archiver|手机版|小黑屋|晨风交流论坛 ( 粤ICP备05008793号 )

GMT+8, 2019-1-17 06:17 , Processed in 0.059608 second(s), 19 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表