官方没有这个功能,大站都有,kaixin001也加了这个功能,个人觉得非常有必要,经过长时间摸索,找到了方法,目前可支持youku,tudou,ku6,mofile视频网站,以下分享方法。
此方法需要空间支持file_get_contents函数。当然也可能有更好的方法(如从视频中获取帧),但对空间要求更大。
忘记截图了,补上:
以下是修改方法(特别说明,修改前做好备份):
修改cp_share.php 408行起以下内容
if(preg_match("/(youku.com|youtube.com|5show.com|ku6.com|sohu.com|mofile.com|sina.com.cn)$/i", $parseLink['host'], $hosts)) {
$flashvar = getflash($link, $hosts[1]);
if(!empty($flashvar)) {
$arr['title_template'] = cplang('share_video');
$type = 'video';
$arr['body_data']['flashvar'] = $flashvar;
$arr['body_data']['host'] = $hosts[1];
}
}
修改为:
if(preg_match("/(youku.com|youtube.com|5show.com|ku6.com|sohu.com|mofile.com|sina.com.cn|tudou.com)$/i", $parseLink['host'], $hosts)) {
$flashvar = getflash($link, $hosts[1]);
$flashimg = getflashimg($link, $hosts[1]);
if(!empty($flashvar)) {
$arr['title_template'] = cplang('share_video');
$type = 'video';
$arr['body_data']['flashvar'] = $flashvar;
$arr['body_data']['host'] = $hosts[1];
if(!empty($flashimg)){
$arr['image'] = $flashimg;
}
}
}
找到这个函数:- function getflash($link, $host) {
- $return = '';
- if('youku.com' == $host) {
- // http://v.youku.com/v_show/id_XNDg1MjA0ODg=.html]http://v.youku.com/v_show/id_XNDg1MjA0ODg=.html[/url]
- preg_match_all("/id\_(\w+)[=.]/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('ku6.com' == $host) {
- // [url=http://v.ku6.com/show/bjbJKPEex097wVtC.html
- preg_match_all("/\/([\w\-]+)\.html/", $link, $matches);
- if(1 > preg_match("/\/index_([\w\-]+)\.html/", $link) && !empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('youtube.com' == $host) {
- preg_match_all("/v\=([\w\-]+)/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('5show.com' == $host) {
- preg_match_all("/\/(\d+)\.shtml/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('mofile.com' == $host) {
- preg_match_all("/\/(\w+)\/*$/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('sina.com.cn' == $host) {
- preg_match_all("/\/(\d+)-(\d+)\.html/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('sohu.com' == $host) {
- preg_match_all("/\/(\d+)\/*$/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- }
- return $return;
- }
复制代码 修改为:- function getflash($link, $host)
- {
- $return = '';
- if('youku.com' == $host) {
- preg_match_all("/id\_(\w+)[=.]/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('ku6.com' == $host) {
- preg_match_all("/\/([\w\-]+)\.html/", $link, $matches);
- if(1 > preg_match("/\/index_([\w\-]+)\.html/", $link) && !empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('youtube.com' == $host) {
- preg_match_all("/v\=([\w\-]+)/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('5show.com' == $host) {
- preg_match_all("/\/(\d+)\.shtml/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('mofile.com' == $host) {
- // http://tv.mofile.com/PPU3NTYW/
- //preg_match_all("/\/(\w+)\/*$/", $link, $matches);
- //------added by jiangtc at 2009.10.18
- //http://v.mofile.com/show/HLD5PLD2.shtml
- preg_match_all("/\/([\w\-]+)\.shtml/", $link, $matches);
- //------added by jiangtc at 2009.10.18
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('sina.com.cn' == $host) {
- // http://you.video.sina.com.cn/b/16776316-1338697621.html
- preg_match_all("/\/(\d+)-(\d+)\.html/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- } elseif('sohu.com' == $host) {
- // http://v.blog.sohu.com/u/vw/1785928
- preg_match_all("/\/(\d+)\/*$/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- }
- //------added by jiangtc at 2009.10.18
- elseif('tudou.com' == $host) {
- // [url=http://www.tudou.com/programs/view/oOrUqgezkOc/
- preg_match_all("/\/([\w\-]+)\/*$/", $link, $matches);
- if(!empty($matches[1][0])) {
- $return = $matches[1][0];
- }
- }
- //------added by jiangtc at 2009.10.18
- return $return;
- }
- function getflashimg($link, $host)
- {
- $return='';
- $content = file_get_contents($link);//获取
- if ('tudou.com' == $host)
- {
- preg_match_all("/<span class="s_pic">(.*?)<\/span>/i",$content,$img);
- }
- elseif('youku.com' == $host)
- {
- preg_match_all("/\+0800\|(.*?)\|">/i",$content,$img);
- }
- elseif('ku6.com' == $host)
- {
- preg_match_all("/<span class="s_pic">(.*?)<\/span>/i",$content,$img);
- }
- elseif('mofile.com' == $host)
- {
- preg_match_all("/thumbpath="(.*?)";/i",$content,$img);
- }
- if(!empty($img[1][0])) {
- $return = $img[1][0];
- }
- return $return;
- }
复制代码 上面同时修改了mofile视频的bug,增加了支持土豆视频。
修改模板文件space_share_li.htm 找到(大约15行):- <!--{if $value['image']}-->
- <a href="$value[image_link]"><img src="$value[image]" class="summaryimg image" alt="" width="70" /></a>
- <!--{/if}-->
复制代码 修改为:- <!--{if $value['image'] && 'video'!=$value['type']}-->
- <a href="$value[image_link]"><img src="$value[image]" class="summaryimg image" alt="" width="70" /></a>
- <!--{/if}-->
复制代码 找到(22行左右):
<div class="media">
<img src="image/vd.gif" alt="点击播放" style="cursor:pointer;" />
</div>
修改为:
<div class="media">
<img src="<!--{if !empty($value['image'])}-->$value[image]<!--{else}-->/image/vd.gif<!--{/if}-->" alt="点击播放" style="cursor:pointer;" />
</div>
以上借用了feed表中的image字段,免得修改表结构了
然后是修改space_feed_li.htm
找到:
<!--{if $value['image_1']}-->
<a href="$value[image_1_link]"{$value[target]}><img src="$value[image_1]" class="summaryimg" /></a>
<!--{/if}-->
修改为:
<!--{if $value['image_1'] && empty($value['body_data']['flashvar'])}-->
<a href="$value[image_1_link]"{$value[target]}><img src="$value[image_1]" class="summaryimg" /></a>
<!--{/if}-->
|