#——————————【插入数据】————
## 1.INSERT INTO movie指定要向movie表中插入数据,加上(指定要插入数据的列)
insert into movie(id,title,director,release_date,length_minutes)
values (23,'活着','张艺谋','1994-05-18',125),(24,'活着','张艺谋','1994-05-18',125)
#——————————【修改数据】————
## 1.修改对应数据:【UPDATE movie】指定要更新 movie 表中的数据 如果没有【WHERE】条件,会更新表中所有记录
update movie set length_minutes = 50,director='姜文' where title = '无人区'
## 2.修改对应数据:只更新ID值在1到5之间(包含1和5)的记录【BETWEEN】是范围运算符
update movie set length_minutes = 50,director='姜文' where id between 1 and 5
#——————————【删除行数据】————
## 1.删除一整行数据,对应条件
delete from movie where title = '无人区'
#——————————【删除列数据】————
## 1.删除一整列数据,对应条件director列,可以删除多个列,套用【drop column】
alter table movie drop column director,drop column length_minutes
#——————————【删除所有数据】————
## 1.删除movie表的所有内容
delete from movie
## 2.删除movie的表
drop table movie
]]>## 1.##movir中提取title和director列的表
select title,director from movie
## 2.movir中提取使用*所有列的表
select * from movie
## 3.提前director列数据,通过【distinct】语句取掉重复内容,根据director去重的数据,后面的release_date根据前面去重的数据一致
select distinct director,release_date from movie
## 4.使用【order by】语法对列表排序,默认为升序,尾部加个【desc】可以改变为降序
select * from movie order by release_date
## 5.前面加个【director】以导演名一列为排序,后面release_date以时间通过【desc】来降序
select * from movie order by director,release_date desc
## 6.使用【limit】语法输出列表的前5条
select * from movie limit 5
## 6.使用【limit】语法前面加个3,将从第4行开始输出列表5条数据
select * from movie limit 3,5
## 7.【where director=】 语法筛选出对应内容的数据
select * from movie where director='宁浩'
## 8.筛选出来的内容使用【and】与语句 时间列 >110分钟的数据
select * from movie where director='宁浩' and length_minutes > 110
## 9.筛选出来的内容使用【or】或语句 筛出导演和时间 >110分钟的数据
select * from movie where director='宁浩' or length_minutes > 110
## 10.筛选出来的内容使用【in】语句 筛出director列多个人的数据
select * from movie where director in('宁浩','姜文')
## 11.使用【between】语法,取length_minutes列下110到120区间的数据
select * from movie where length_minutes between 110 and 120
## 12.筛选列中对应时间的列
select * from movie where release_date='2013-12-03'
## 13.【like】通配符筛选,筛选内容包含2013的字符,来达到赛选2013年份所有数据的功能
select * from movie where release_date like '2013%'
## 14.【like】通配符筛选,使用下划线_一个代表一个文字,这里可以赛选出3个字的导演名字
select * from movie where director like '___'
## 15.使用【year()】语法,提取日期中的年份,进行筛选
select * from movie where year(release_date)='2013'
## 15.使用【month()】语法,提取日期中的月年份,进行筛选
select * from movie where month(release_date)='12'
]]>/**
* 根据音质和时长计算音频文件大小
*
* @param int $duration 时长(秒)
* @param int $sampleRate 采样率(Hz),如 44100(仅 WAV/FLAC 需要)
* @param int $bitDepth 位深(bit),如 16(仅 WAV/FLAC 需要)
* @param int $channels 声道数,如 2(仅 WAV/FLAC 需要)
* @param int $bitrate 比特率(kbps),如 128(仅 MP3/Ogg/M4A/AAC 需要)
* @param string $type 音频类型:'wav', 'flac', 'mp3', 'ogg', 'm4a', 'aac'
* @return float 返回文件大小(MB)
*/
function calculateAudioSize($duration, $sampleRate, $bitDepth, $channels, $bitrate, $type = 'mp3') {
$bytes = 0;
$type = strtolower($type);
if ($type === 'wav') {
$bytes = $sampleRate * $bitDepth * $channels * $duration / 8;
}
elseif ($type === 'flac') {
$rawBytes = $sampleRate * $bitDepth * $channels * $duration / 8;
$compressionRatio = 0.6;
$bytes = $rawBytes * $compressionRatio;
}
elseif (in_array($type, ['mp3', 'ogg', 'm4a', 'aac'])) {
$bytes = $bitrate * 1000 * $duration / 8;
}
return round($bytes / 1024 / 1024, 2);
}$duration = 180; // 3分钟 (180秒)
// 1. FLAC 文件:3分钟,CD音质 (44100Hz, 16bit, 2声道)
$flacSize = calculateAudioSize($duration, 44100, 16, 2, 0, 'flac');
echo "FLAC 文件大小约为:{$flacSize} MB\n";
// 2. AAC / M4A / Ogg 文件:3分钟,高音质 (256kbps)
$aacSize = calculateAudioSize($duration, 0, 0, 0, 256, 'aac');
echo "AAC/M4A/Ogg 文件大小约为:{$aacSize} MB\n";
]]>首先需要获取文件的 字节长度 和 音质 (如:6400、12800、32000)
//计算音乐时长
function ilingku_duration($lksize,$lkquality='12800'){
//音乐文件大小+音乐音质=音乐时长
$recordtime = intval((($lksize-42)*0.8) / $lkquality);
return date("i:s",$recordtime);
}//计算音乐时长
function ilingku_duration($lkurl,$lkquality='12800'){
$header_array = get_headers($lkurl, true);
$lksize = $header_array['Content-Length'];
//音乐文件大小+音乐音质=音乐时长
$recordtime = intval((($lksize-42)*0.8) / $lkquality);
return date("i:s",$recordtime);
}echo ilingku_duration(‘http://cg.sycdn.kuwo.cn/2a2eb0bafa872aee7021f133162d0835/64dfc0f5/resource/n1/64/13/3119858049.mp3′,’12800’);04:17
]]>{cloud title="夸克下载" type="quark" url="https://pan.quark.cn/s/1a1fe01be306" password="GQy1"/}
{hide}
{cloud title="蓝秦下载" type="lz" url="https://wwbug.lanzouu.com/ilPgq3p4gugf" password="hfe5"/}
{cloud title="迅雷下载" type="xunlei" url="https://pan.xunlei.com/s/VOsCI_Ps9g0bhlR92GBj8CZeA1" password="jtjj"/}
{/hide}
在内容创作日益商业化的今天,付费阅读已成为许多博主和内容创作者实现价值变现的重要途径。Typecho作为一款轻量级、高性能的开源博客系统,在1.3.0版本中虽然没有原生提供付费阅读功能,但其灵活的插件机制和简洁的代码结构为开发者提供了丰富的扩展可能性。本文将深入探讨如何在Typecho 1.3.0中实现付费阅读功能,从理论基础到具体实践,为内容创作者提供一套完整的解决方案。
本文详细介绍了一款专为Typecho博客系统设计的知识付费插件LkPayRead ,该插件基于支付宝当面付功能,帮助内容创作者轻松实现知识变现。文章全面解析了插件的核心功能,包括付费墙设置、订单管理、付费文章、邮件通知,并提供了详细的配置指南和使用示例。同时,针对个人用户特别说明了支付宝当面付基础版的申请流程和收款限额,分享了内容定价策略和付费墙设计技巧,为博主提供了一套完整的知识付费解决方案。通过LkPayRead 插件,创作者可以灵活设置不同价格的付费内容,实现从免费预览到完整内容解锁的平滑过渡,有效提升内容变现能力。
{gird column="3" gap="15"}
{gird-item}
{/gird-item}
{gird-item}
{/gird-item}
{gird-item}
{/gird-item}
{gird-item}
{/gird-item}
{gird-item}
{/gird-item}
{/gird}
{callout color="#73aaff"}1、接收订单邮箱通知
2、可在任意文章 独立页面添加
3、自由切换是否登录购买
4、查看所有订单列表
5、查看所有付费文章列表
6、自由切换是否登录购买
7、仅支持对接支付宝当面付
{/callout}
使用 {lkpay}{/lkpay} 标签包裹需要付费的内容:
{alert type="info"}这是免费内容,所有人都可以看到。
{lkpay price=9.9}
这里是付费内容,需要支付9.9元才能查看。
可以包含任何HTML内容,如图片、链接、表格等。
{/lkpay}
这里又是免费内容。
{/alert}
66 元
登录后购买可永久查看 · 未登录购买有效期 7 天
{cloud title="免费下载" type="quark" url="https://pan.quark.cn/s/7c88864628df" password="GPBX"/}
{login}
{cloud title="蓝秦下载" type="lz" url="https://ilingku.lanzoub.com/iMzNq3op656f" password="2oh3"/}
{/login}
{cloud title="免费下载" type="quark" url="https://pan.quark.cn/s/14c64eda5bc8" password="9fiv"/}
{login}
{cloud title="免费下载" type="lz" url="https://ilingku.lanzoub.com/iFN9l3oov37i" password="3fr9"/}
{/login}
https://blog.ilingku.com/tool/163music/api/{alert type="info"}
可以放入 index.html 中 var apiurl = "https://blog.ilingku.com/tool/163music/api/";
{/alert}
{cloud title="夸克下载" type="quark" url="https://pan.quark.cn/s/bbde3f2efc46" password="DxXt"/}
9.9 元
登录后购买可永久查看 · 未登录购买有效期 7 天
http://blog.ilingku.com/api/qq/avatar/?qq=10001{
"code": 200,
"msg": "success",
"qq": "10001",
"name": "pony",
"email": "10001@qq.com",
"avatar": "http://blog.ilingku.com/api/qq/avatar/profile/?k=tA33ZFgtKdvljnkhHetNe",
"data": {
"qq_avatar_40": "http://blog.ilingku.com/api/qq/avatar/profile/?k=tA33ZFgtKdvljnkhHetNe&s=40",
"qq_avatar_100": "http://blog.ilingku.com/api/qq/avatar/profile/?k=tA33ZFgtKdvljnkhHetNe&s=100",
"qq_avatar_140": "http://blog.ilingku.com/api/qq/avatar/profile/?k=tA33ZFgtKdvljnkhHetNe&s=140",
"qq_avatar_640": "http://blog.ilingku.com/api/qq/avatar/profile/?k=tA33ZFgtKdvljnkhHetNe&s=640",
"qq_avatar_1000": "http://blog.ilingku.com/api/qq/avatar/profile/?k=tA33ZFgtKdvljnkhHetNe&s=1000"
}
}
]]>