根据目录名将某个指定目录下的所有文件名以一定的规则插入到一个表中

  最近项目遇到一个需求,就是把某个目录的所有文件的名称以一定的规则插入到一个表中,首先来看下badge表结构:

  

  目录名称为‘Picture/Badge/‘,文件的命名也是以一定的规则来命名的,例如: balldate_1_1_sl.png,match_1_10_1_1_gr.png,apply_1_50_sl.png,,,如果把balldate_1_1插入到

   badge表,那么type=1,first_index=1,second_index=1,path=‘Picture/Badge/balldate_1_1_sl.png‘;

  1.获取这个目录下的所有文件的名称,

    $file_names = scandir(public_path(‘/Picture/Badge‘));

    unset($file_names[0],$file_name2[1]);(因为$file_names目录下的前2个目录是.和..文件)

    $data_array = array();

    foreach($file_names as $key => $file_name){

      $new_file = substr($file_name,0,strrpos($file_names,‘.‘);//去掉balldate_1_1.png的后缀.png

      $explode_data = explode(‘_‘,$new_file);  //将

      $data[‘type‘] = $explode_data[0];

      $data[‘first_index‘] = $explode_data[1];

      $data[‘second_index‘] = $explode_data[2];

      $data[‘is_highlight‘] = $explode_data[3] == ‘sl‘ ? 1 : 0;

      $data[‘path‘] = sprintf(‘/Upload/Picture/Badge/%s‘,$file_name);

      $data_array[] = $data;

    }

    DB::table(‘badge‘)->insert($data_array);

 

    

时间: 2024-08-09 14:47:03

根据目录名将某个指定目录下的所有文件名以一定的规则插入到一个表中的相关文章

wamp的www目录更改为指定目录

wamp的www目录更改为指定目录内容简介:主要过程: (1)修改httpd.conf文件 (2)修改新的www目录下的index.php文件 (3)修改manage.ini的278行和manage.tpl的125行 我的WAMP2.0安装在E盘在,所以我的www目录是e:/wamp/www/,我想将它改为g:/www/ 第一步:就是照别人说的,修改httpd.conf文件 Do 主要过程: (1)修改httpd.conf文件 (2)修改新的www目录下的index.php文件 (3)修改man

tar命令——将文件/目录压缩到指定目录

有时候,我们可能会有这样的需求:将文件/目录压缩到指定目录.比如将/home和/boot目录的所有文件和目录本身压缩到bak目录下,一般情况我们要这样做的话,必须先建立一个bak目录,然后将/home和/boot目录复制到bak目录下,然后再打包压缩bak目录,这样的话,既浪费时间,又浪费磁盘空间. 现在有个更好的方法来解决这个问题,那就是利用tar的--xform参数,该参数的作用是在打包压缩时利用sed的替换命令修改文件名,你可以在文件名前加上前缀. 举个例子吧. tar czvf test

mysql获取一个表中的下一个自增(id)值的方法

MySQL: Get next AUTO_INCREMENT value from/for table Note to self: To get the next auto_increment value from a table run this query: SELECT AUTO_INCREMENT FROM information_schema.TABLES WHERE TABLE_SCHEMA = $dbName AND TABLE_NAME = $tblName. Don’t for

关于linux中移动目录和到指定目录和移动目录中的数据到指定目录

#这里表示将目录node-v12.13.1-linux-x64移动到/usr/local/中重命名为node,所以node目录可以不存在[[email protected] ~]# mv node-v12.13.1-linux-x64 /usr/local/node#这里表示将目录node-v12.13.1-linux-x64下的内容移动到/usr/local/node目录中,所以node目录需要存在[[email protected] ~]# mv node-v12.13.1-linux-x6

C# 实现文件或目录复制到指定目录

public void CopyFilesToDirKeepSrcDirName(string srcPath, string destDir) { if (Directory.Exists(srcPath)) { DirectoryInfo srcDirectory = new DirectoryInfo(srcPath); CopyDirectory(srcPath, destDir + @"\" + srcDirectory.Name); } else { CopyFile(sr

获取指定路径下的所有图片文件名

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace File_Test { class GetImages { /// <summary> /// 获取指定的文件夹中的图片文件 /// </summary> /// <param name="userId"&g

SqlSever基础 给一个数据库中的一个表中的一个指定的列赋值

1 code 1 create database helloworld2 2 3 use helloworld2 4 5 create table Teacher2 6 ( 7 ShengHao nvarchar(20) not null, 8 Id nvarchar(10) default(0) --你不给我赋值的话,我就默认为0,可以为空哦 9 ) 10 11 --插入 12 insert Teacher2(ShengHao) 13 values('元始天尊') 14 --查看 15 sel

SqlSever基础 查看一个数据库中的一个表中指定列的内容

1 2 code 1 -- 列名 ShengHao Teacher2表的名字 2 select ShengHao from Teacher2 3 show

获取指定路径下指定类型的文件名称,并返回可用的新名称

检查磁盘上指定目录是否已经存在同名文件(本代码是检查.jpg文件类型),存在三种情况: 1:不存在,返回查询的名称 如:输入abc,返回abc 2:存在一个名称相同的文件,返回"预定义的名称+当前日期+001"的新名称 如:存在一个叫abc.jpg的文件,输入abc,返回abc20101227001 3:存在多个前缀名相同的文件,则返回比编号最大的文件大一个编号的名称 如:存在abc.jpg,abc20101227001,abc20101227002,-,abc201012270023