• 功能说明:
    一个文件夹内有MP3文件和lrc(歌词文件),我要提取文件夹下所有的lrc文件内容中的标题.
    一个lrc文件的内容像这样:
    [al:新概念英语(一)]
    [ar:MP3 同步字幕版(美音)]
    [ti:Sorry, Sir.]
    [00:00.79]Lesson 3
    [00:02.98]Sorry sir.
    [00:05.75]Listen to the tape then answer this question.
    [00:11.71]Does the man get his umbrella back?
    [00:17.56]My coat and my umbrella please.
    [00:22.00]Here is my ticket.
    [00:25.03]Thank you sir.
    [00:26.86]Number five.
    [00:29.09]Here’s your umbrella and your coat.
    [00:33.72]This is not my umbrella.
    [00:37.39]Sorry sir.
    [00:39.67]Is this your umbrella?
    [00:42.56]No it isn’t.
    [00:45.69]Is this it?
    [00:47.76]Yes it is.
    [00:50.53]Thank you very much.

  • 提取[ti:Sorry, Sir.]中的Sorry, Sir.

  • 提取所有的lrc文件中的ti: , 输出一个列表.

1. 使用scandir()方法可以获取文件夹中文件名

2. 遍历提取后缀名为.lrc的文件名

3. 读取lrc内容

4. 提取内容中的[ti:]标题输出

5. 创建超链接

<?php /*获取文件夹中所有文件名称*/
$dir = "./lesson/";
$files = scandir($dir);//调试打印
// echo '<pre>';
// print_r($files);
// echo '<pre>';foreach ($files as $key => $value) {//直接使用正则检测文件后缀名,取lrc类型if (preg_match('/\.lrc/i', $value)){//$dir.$value为文件url,打开文件通道$path = fopen($dir.$value,'r');// 打开文件,fread()读取其内容赋给\$lrc$lrc = fread($path,filesize($dir.$value));/*提取标题:  * preg_match(正则表达式\$reg,处理\$lrc,处理后存入$temp_title)* 正则检测[ti:]和其后的字符串存入$temp_title* 如果有匹配此表达式为true*/$reg = '/(?:\[ti\:)(.*)(?:\])/i';if (preg_match($reg ,$lrc, $temp_title)) {// 去掉[ti:],将[ti:]内的字符串存为标题title// 文件名称$filename = $value;//只要内容不要[ti:],取[1]$title = $temp_title[1];// 生成超链接$title_link = '<li><a href="'.$dir.$filename.'">'.$title.'</a></li>';echo $title_link;// array_push($file_list, $title_link);}fclose($path);}
}?>
  • 我得到的列表:

  • 点击链接得到文件(歌词)内容

劣势:
1. 当lrc文件中没有标题,那这个文件就列不了了
2. 这里我以后缀名来判断文件格式, 你有没有其他的方法呢? 欢迎指教

php获取文件夹中所有lrc格式文件,提取lrc文件中内容相关推荐

  1. U盘文件夹全变为.exe格式或U盘文件全部消失(U盘AutoRun病毒解决方法)

    有时候当我们使用U盘时,可能存在感染AutoRun病毒的风险,尤其是学校机房的电脑,最容易让我们的U盘中招! U盘中了AutoRun病毒后最明显的表现就是U盘显示内存容量占用,打开后确什么东西都没有, ...

  2. pythonshell压缩文件_文件夹压缩成zip格式

    前言: 在最近的后台开发工作中,需要将服务器的指定文件夹压缩,然后传输到前台.shell的zip命令可以很方便的实现该需求,python也有对应的模块,这里简要记录一下使用两种方式压缩文件的方法. s ...

  3. xml遍历文件夹vector_怎么统计指定文件夹下含有.xml格式的文件数目

    如何统计指定文件夹下含有.xml格式的文件数目?如题 ------解决思路----------------------Directory.GetFiles(@"路径", " ...

  4. python获取文件夹大小_S3 API for python–创建bucket文件夹统计文件夹大小

    最近一直在跟S3打交道,但是苦于java不会,python懂一点,API这个东东经常听也知道是啥,但是没有实际根据API文档去进行相关开发的经历,所以前期一直很忐忑,都是找别人帮忙写好特定功能的程序, ...

  5. 如何将文件夹压缩为zip格式

    需求:需要压缩一个文件夹,文件夹下有不同文件,其中有一部分不需要压缩. 方法一:目录格式按照之前文件夹格式压缩 package cn.com.vsai.knowledge.graphlabel.ser ...

  6. Ubuntu 创建文件夹时出现:用户名 不在 sudoers 文件中。此事将被报告。

    Ubuntu 创建文件夹时出现:用户名 不在 sudoers 文件中.此事将被报告. 1. 错误状态 2. 解决办法 1. 错误状态 用户git在创建文件夹时出现如下错误提示: git 不在 sudo ...

  7. python小操作——读取文件夹内的任意格式文件到txt并排序

    概述: 懒得一个一个的对文件进行备注,想着先把所有的文件名放在一起,最后还想着加个序号 实现效果图: 代码: 1.0版本不太简便,以后有时间会对def Test()化简一下,精简一下代码. ####读 ...

  8. 20221109使用SubtitleEdit-3.6.8-将蓝光DVD中的图形格式的字幕SUP文件通过OCR识别为SRT

    20221109使用SubtitleEdit-3.6.8-将蓝光DVD中的图形格式的字幕SUP文件通过OCR识别为SRT 2022/11/9 15:46 缘起:看 硅谷牛仔 2016-云下载,只找到: ...

  9. sudo修改文件夹名字_用 Python 高效智能管理文件夹

    #「闪光时刻」主题征文 二期# 大家在写报告.写总结时,是否会先去翻一下以前写过的类似的东西?是否有看过比较好的文章,想保存时却为归类而纠结?是否电脑里的文件越来越多,想删掉一些却又舍不得?身处大数据 ...

  10. c语言程序压缩解压缩文件夹,【转】使用VC++压缩解压缩文件夹

    前言 项目中要用到一个压缩解压缩的模块, 看了很多文章和源代码, 都不是很称心, 现在把我自己实现的代码和大家分享. 要求: 1.使用Unicode(支持中文). 2.使用源代码.(不使用静态或者动态 ...

最新文章

  1. 还在用肉眼找不同吗?这个技术轻松搞定
  2. 攻读计算机视觉和机器学习硕士给我带来了什么?
  3. 腾讯云服务器配置ftp~
  4. 报告PPT--Python程序设计,不仅仅是学习编程(35页)
  5. IntelliJ Idea学习笔记004---IDEA中maven没有了
  6. 让一个视图对触摸事件作出响应, 需要实现的方法
  7. I.MX6 linux kernel编译错误处理
  8. Linux QQ 2.0 Beta版初体验
  9. mysql表锁ix_S、X、IS、IX数据库锁机制 很详细的教程,简单易懂
  10. 计算机带不动移动硬盘,我笔记本的USB带不动移动硬盘,但另外一台电脑又可以,同样的盘盒,换一块硬盘又可以,...
  11. 微创电生理通过注册:年营收1.9亿 微创批量生产上市企业
  12. python plot画柱状图_matplotlib使用:画柱状图
  13. LeetCode - Pascal's Trangle
  14. js判断手机的横竖屏调整样式
  15. Android简易计算器的制作
  16. HTML5中swiper实现图片查看功能
  17. 2019,塞翁失马,败走麦城
  18. 每周全球科技十大新闻(2020.8.17-8.23)
  19. 【python】利用python实现简单粒子群优化算法实例
  20. 19、ZigBee 开发教程之基础篇—MQ-2气体传感器

热门文章

  1. 生态循环水稻种养模式 国稻种芯重庆乡里巴巴功能性育种基地
  2. Foxmail7.2账号帐号邮件备份和恢复
  3. 英文长句学习的Python分析法
  4. 命运惨淡 各大品牌遭冷遇手机一览(组图)
  5. [软件测试]因果图例子
  6. ScheduledExecutorService的简单使用、scheduleAtFixedRate和scheduleWithFixedDelay区别
  7. CSS如何实现双飞翼布局?
  8. 买本必看!!全价位游戏笔记本推荐(1月4日更新)
  9. springboot consumes和produces属性
  10. JavaScript内存管理机制以及四种常见的内存泄漏解析