php遍历linux目录,Linux+PHP遍历文件夹下所有文件,插入数据库

需求:某文件夹下的所有.jpg文件插入数据库中,只存文件路径和文件名.

一.Linux下操作

1.awk安装

sudo apt-get install -y gawk

2.调用find命令遍历文件夹下所有.jpg文件,把遍历的文件路径写到一个文件里(加 | sort 是为了find的结果自然排序,否则find的结果很乱)

find /home/abc/test/ -name "*.jpg" | sort > /home/abc/find_abc_test.txt

3.awk整理路径文件,拼装成sql语句(awk拼装sql根据个人情况,我这里分隔符时/和.)

awk -F ‘[\/.]‘ ‘{now=systime();nt=strftime("%Y",now)"-"strftime("%m",now)"-"strftime("%d",now)" "strftime("%T");print "INSERT INTO `your_database_name`.`your_table_name` (file_title,file_name,file_path,create_time,update_time)  VALUES (\""$8"\",\""$8"."$9"\",\""$6"/"$7"/"$8"."$9"\",\""nt"\",\""nt"\");"}‘ /home/abc/find_abc_test.txt > /home/abc/sql_abc_test.sql

可以先中命令行里试试awk分隔后的各个块是什么,比如

awk -F ‘[\/.]‘ ‘{print $1}‘ /home/abc/find_abc_test.txt

4.mysql导入sql文件,数据库名your_database_name

mysql -uroot -proot your_database_name

到此,已经把想要的数据插入数据库.

二.Linux+PHP

用PHP操作,用exec()方法,把上面的命令都拼成字符串,注意引号用\.

例:($your_dir_path被遍历文件夹路径,因为浏览器拿不到文件夹真实路径,所以$your_dir_path我是事先存数据库中的)

$your_command_str = ‘find ‘ . $your_dir_path . ‘/ -name "*.jpg" | sort > /home/abc/find_abc_test.txt‘;

exec($your_command_str);

其余命令以此类推,注意操作时涉及到的文件夹给好相应的权限,还有owner问题.

注意把执行时间调无限

ini_set(‘max_execution_time‘,‘0‘);

原文:https://www.cnblogs.com/aumid47/p/11353824.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值