小弟最近想做一个电影网站玩玩,所以研究了一下影视开源程序,在网上找了几个比较好的开源程序:马克斯影视系统MAXCMS、飞飞影视系统PPVOD、光线影视管理系统GXCMS、天空网络电影系统SKYUC等,这几个也是站长下载频道推荐的几款。这几个我都先后进行了测试,不过我喜欢php+mysql,所以就没有选择asp的MAXCMS,又因为模板问题最后选择了使用光线。
通过各项测试,光线cms基本上没有什么大的问题,不过等到我准备大干一场的时候却发现光线cms只支持百度影音的资源,对于快播资源,土豆等资源不支持,让我很郁闷,因为小弟在平时看电影的时候喜欢用快播,而且百度最近搞了个百度影音浏览器和播放器绑定,用着实在很不爽啊!该怎么办呢?去官网,没找到答案,官方不愿意支持其他播放器那也实在没办法;去网上搜索,才发现很多使用光线cms的同志们都遇到了这个问题,可是没有真正的解决办法,最后发现张晓军这个牛人的博客有解决方法!哈哈,心花怒放啊!
按照步骤修改代码、上传、测试,却又发现了一个大问题:涉及到快播资源地址格式问题!!!
如果单独添加的播放地址qvod前面没有其他参数的格式,比如:qvod://423858029GOKKSHOPGH,这种地址快播可以正常播放,查看播放页面的播放地址为qvod://423858029;
但是如果添加的地址前面有XXX$参数的格式,比如:BD高清版$qvod://423858KKSHOP154531212313029,这种地址在快播就放不了,查看播放页面的获取的地址为$qvod://423858KKSHOP154531212313029,这种格式快播无法识别;
该怎解决呢?然后我对代码进行了修改,将获取到的地址前面的$过滤掉,OK解决了!
找到 core /Lib/Action/CmsAction.class.php原代码,替换为新的代码,105行到119 行(我的是1.5版本的)。
#FormatImgID_0#
原来的代码:
if($playarr){
$videoid = $playarr[0];
$videoji = $playarr[1]-1;
$player =' < script language="javascript" type="text/javascript" src="'.C('web_path').'temp/Js/player.js" > < /script>'."n";
if (C('user_pay') && in_array($array['cid'],C('user_paycid'))){
$player .='< div id="GxInstall" > < /div > < div id="GxPlayer" class="Userpay" > < /div >';
}else{
$player .=' < div id="GxInstall" > < /div > < div id="GxPlayer" class="Loading" > < /div > ';
$player .=' < script language="javascript" type="text/javascript" > '."n";
$player .='var $playlist="'.str_replace(array("rn", "n", "r"),'+++',$array['playurl']).'"'."n";
$player .=' < /script>'."n";
$player .=' < script language="javascript" src="'.C('web_path').'views/js/player.js" charset="utf-8" > < /script > ';
}
修改后的代码:
if($playarr){
$videoid = $playarr[0];
$videoji = $playarr[1]-1;
$player=explode('+++',str_replace(array("rn", "n", "r"),'+++',$array['playurl']));
$player=substr($player[$videoji],stripos($player[$videoji],'$'));// 获得当前页 视频地址
$player=str_replace("$","",$player);//过滤快播前面的$
if(C('user_pay') && in_array($array['cid'],C('user_paycid'))){
$player =' < script language="javascript" type="text/javascript" src="'.C('web_path').'temp/Js/player.js" > < /script>'."n";
$player .=' < div id="GxInstall" > < /div > < div id="GxPlayer" class="Userpay" > < /div > ';
}else{
if(stripos($player, 'bdhd://')!==false){ // 如果是百度影音
$player =' < script language="javascript" type="text/javascript" src="'. C('web_path').'temp/Js/player.js" > < /script> '."n";
$player .=' < div id="GxInstall" >