Discuz! X3在手机版中播放诸如优酷之类视频的方法

本文介绍如何在Discuz! 论坛的手机版中实现外链视频的播放功能,包括修改源代码以支持[media]、[flash]等标签,并通过JavaScript动态加载优酷和Bilibili等平台的视频。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

手机版支持播放外链视频的方法,可支持触屏版,也可支持标准版。

首先找到discuz的ubb代码解析文件(source/function/function_discuzcode.php),在大约199行的时候可以看到,如果用户打开的是手机版,那么[media]、[audio]、[flash]这3个标签都会被放弃解析,统一输出成[media]XXXXX[/media]这种格式。

首先改动[media]标签的解析,将第200行的代码:

  1. $message =preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is","[media]\\2[/media]", $message);

修改为:

  1. $message =preg_replace("/\[media=([\w,]+)\]\s*([^\[\<\r\n]+?)\s*\[\/media\]/is","", $message);

在来改动[flash]标签的解析,将205行的代码:

  1. $message =preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is","[media]\\4[/media]", $message);

修改为:

  1. $message =preg_replace("/\[flash(=(\d+),(\d+))?\]\s*([^\[\<\r\n]+?)\s*\[\/flash\]/is","", $message);

然后修改模版文件(template/default/touch/forum/viewthread.htm),在任意一个JS标签中加入解析视频的代码:

  1. function openVideo(a,b) {
  2.        $(a).html('');
  3.        var w =$(a).width();
  4.        var h = w *0.85;
  5.        if(/youku/.test(b)){//解析优酷
  6.              b =b.match(/id_(.*?)\.html|sid\/(.*?)\/v/);
  7.              b ='http://player.youku.com/embed/' + (b[1] ? b[1] : b[2]);
  8.        }elseif(/bilibili|acg\.tv/.test(b)){ //解析B站
  9.              b =b.match(/o\/av(.*?)\/|aid=(.*?)&/);
  10.              b ='http://www.bilibili.com/video/av' + (b[1] ? b[1] : b[2]);
  11.        }else{
  12.             $(a).html('不支持此视频地址显示:' + b);
  13.             return;
  14.        }
  15.        $(a).append('');
  16.        $(a).children('iframe').load(function(){
  17.             $(a).children('img').remove();
  18.             $(a).children('iframe').css({'width':w,'height':h});
  19.        })
  20. }

以上完成修改,可以用手机打开一个有视频的帖子看看效果了



原文:http://sunxboy.iteye.com/blog/2251277

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值