说在前面:
1.本文的标题很纯洁
2.以下的内容简直就是黑历史,简直没眼看,不过为了以史为鉴,保留于此
是这样的,寒假闲来无事,想折腾些东西(虽然还有几个坑没填)
昨天突发奇想,想说在typecho里面用一些短代码来插入b站视频捏Σ(゚ω゚)
于是撸起袖子就开始干了
首先
首先,请检查一下你的typeho版本是不是测试版,比如这样子
不是的就去升升级
那么定义一下短标签的形式,我用的是这样子<bili>av号</bili>
开始操作
在主题文件的functions.php里面新建一个函数
function bili2post($content){
//....
}
在post.php找到输出文章的代码<?php echo $this->content; ?>
,改成<?php bili2post($this->content); ?>
首先要获取一下文章内容
function bili2post($content){
$str = $content;
}
因为要在文章中匹配短标签,那就要用正则匹配啦,根据定义的标签来写正则式
以上面的为样本,由题得
/<bili>(.*)<\/bili>/U
然后就把文章匹配一下,得到一个数组
function bili2post($content){
$str = $content;
preg_match_all ("/<bili>(.*)<\/bili>/U", $str, $av);
}
如果想插入多个视频,那就用上了for循环
function bili2post($content){
$str = $content;
preg_match_all ("/<bili>(.*)<\/bili>/U", $str, $av);
$i = count($av[0]);
$x = 0;
for ($x; $x<$i; $x++)
{
//...
}
}
把正则匹配到的短代码优化一下
因为匹配的是
这个时候
$avnum = ltrim($av[0][$x],"<bili>");
$avnum = rtrim($avnum,"</bili>");
那么我们可以从b站视频页看到,b站的外链播放器格式为
<embed height="415" width="544" quality="high" allowfullscreen="true" type="application/x-shockwave-flash" src="//static.hdslb.com/miniloader.swf" flashvars="aid=5616151&p=1"></embed>
看到了找到av号的位置,把这代码截取一下(事后:多此一举)
$bili1 = "<embed height='415' width='544' quality='high' allowfullscreen='true' type='application/x-shockwave-flash' src='https://static.hdslb.com/miniloader.swf' flashvars='aid=";
$bili2 = "&page=1' pluginspage='https://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash'></embed><br>";
然后合成一下
$ex2 = $bili1.$avnum.$bili2;
于是开始替换了
$ex = "/<bili>(.*)<\/bili>/U";
$str = preg_replace($ex,$ex2,$str);
综上所述,可得
function bili2post($content){
$str = $content;
preg_match_all ("/<bili>(.*)<\/bili>/U", $str, $av);
$i = count($av[0]);
$x = 0;
for ($x; $x<$i; $x++)
{
$ex = "/<bili>(.*)<\/bili>/U";
$avnum = ltrim($av[0][$x],"<bili>");
$avnum = rtrim($avnum,"</bili>");
$bili1 = "<embed height='415' width='544' quality='high' allowfullscreen='true' type='application/x-shockwave-flash' src='https://static.hdslb.com/miniloader.swf' flashvars='aid=";
$bili2 = "&page=1' pluginspage='https://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash'></embed><br>";
$ex2 = $bili1.$avnum.$bili2;
$str = preg_replace($ex,$ex2,$str);
}
echo $str;
}
收工
然后在编辑器中插入短代码就可以解析出来啦,试试看
看一下成果吧
好像成功了。。
很唠的地方
为什么说是很唠呢?
WTF
吓得我又回去检查了一下我的代码
没毛病啊,结果去问了客服,说是那个外链播放器暂时不支持博客
多唠哦
但是我们不能思维江化了,我们可以举一反三,你懂我意思吧
不一定是解析B站视频,这里给了一个思路,对吧(捂脸)
Hello There. I discovered your blog the use of msn. This is a very well written article.
I'll be sure to bookmark it and come back to read extra
of your useful information. Thank you for the post. I will definitely return.
多捞哦!这是…熟悉的…东北大碴子味儿???哈哈哈哈哈
惊,我可是纯种南方人
我的东北室友总这么说,多捞哦!
233
233
本来我博客也支持类似功能的,后来b站调整了好几次视频分享代码,我就把这个功能给删了
懂。不存在的
呸,苟利国家生
hhhh 不知道为什么现在都不给外链了 orz
對啊(´Д` )
直接被图片get到了
欸!
这玩意...大概...是不需要测试版的(
致爱折腾的人!
Gengsir(纯真小耿)祝您新年大吉大利!感谢您一路陪伴!
[p.s.sakuralove的评论怎么也评论不上,本来想送祝福来着QAQ希望他能看到]
同乐!我想sakuralove也会看到的
给了一个思路?还有这个文章的切换看着真熟悉
我看着也有点熟悉2333
啊啊..翻页贼好看QwQ
谢谢23333(