写一个PHP脚本。用于截取每行特定的数据、批量插入数据库。

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/chanlingmai5374/article/details/84796915

需求场景

我在写微信小程序的《Vocaloid中文/日文歌曲周刊》排名的统计。
一般B站视频下面的评论区,都会有热心的大佬统计下曲名、AV号。
我想把“排名”、“歌曲名”、“AV号”插入到我的数据库,然后在微信小程序前端显示。

源文件的格式是这样的:

30	【中V六人原创】百家策(原创PV付)【诸子百家/洛言绫尘牙柯】av36887940
29	【洛天依GUMI·V5】看看你让我做了什么【双语填词】【雨狸、三可】【PV付】av35961272
28	【双言】故事旅者【PV付】av37013225
27	【乐正龙牙原创曲】桃源梦话【幻月音乐团/华哉有夏】av37025598
26	【洛天依原创】舔狗舔到最后一无所有【V音研】av35359353
25	【原创】《Hello Hello》——洛天依 av35111463
24	【星尘原创/暗黑哥特Feel】镜中花(半木生出品/时空轮•盘系列02)av37088590
23	【V家女团/中文首翻】POP/STARS【你听过虚拟歌姬为英雄联盟应援吗?】av36190530
22	【洛天依原创】交替之生—致努力活着的我们【原创pv付】av36730264
21	【洛天依原创】FORM(Lyric Video)【BoyuanP】【个人EP主打曲】av36211337
20	【星尘】淋雨一直走 - 这声线也太合适了吧 av35806404
...........

来源于:https://www.bilibili.com/video/av37368130 统计者:春花秋拾゙゙゙

我先手动插入了5条数据,然后就放弃了、、、太累了。
身为程序员,不能用这么蠢的方法!
于是我想用PHP写个脚本,截取每行数据。批量插入数据库。


思路

获取排名:需要截取每行开头,到第一个空格之间的字符串。
获取歌曲名:需要截取每行第一个空格,到最后一个"av"之前的字符串。
获取av号:需要截取最后一个“av”到最后的字符串。

参考资料:

fgets() 函数从文件指针中读取一行。
strlen() 函数返回字符串的长度。
strpos、strrpos字符串最先出现/最后出现。
substr() 函数返回字符串的一部分。

代码

在我的Github上:
https://github.com/koibi2/PHP-Read-txt-Insert-into-database

插入结果

在这里插入图片描述

需要注意的地方

在这里插入图片描述
看出有什么问题没有?
我也不知道为啥av前多打了一个超小的空格。导致一直返回false。
另外,以后热心大佬上传的排名格式可能都不一样。
切记空格、每行的开始、结束等,都要好好检查哦。

反思

通过写这次脚本,加深了对php文件操作、字符截取的理解。
过几天,我再写个NodeJS版本的~

猜你喜欢

转载自blog.csdn.net/chanlingmai5374/article/details/84796915