php-修复文件夹结构的脚本

php-修复文件夹结构的脚本,php,io,directory,Php,Io,Directory,我正在更改在网站后端保存文件的方式: uploads/item/x/subitem/y/document.pdf 其中x和y是整数id,将其更改为: uploads/item/x/subitem/y/report/document.pdf 我需要改变目前的文件夹目录,这是超过1000条记录。有没有一种很好的方法可以在php中修复此结构,而不必在嵌套循环中寻址每个文件夹,我只需要在文档之前添加另一个文件夹 编辑: 这就是我想要找到的命令 foreach(glob('uploads/item/*

我正在更改在网站后端保存文件的方式:

uploads/item/x/subitem/y/document.pdf
其中x和y是整数id,将其更改为:

uploads/item/x/subitem/y/report/document.pdf
我需要改变目前的文件夹目录,这是超过1000条记录。有没有一种很好的方法可以在php中修复此结构,而不必在嵌套循环中寻址每个文件夹,我只需要在文档之前添加另一个文件夹

编辑:

这就是我想要找到的命令

foreach(glob('uploads/item/*/subitem/*/*') as $filePath)

谢谢大家的帮助。

你能不能在
y/
下创建一个文件夹
report/
,然后将
y/
中的所有文件移动到
report/
?这根本不需要PHP

编辑:我的bash非常生锈,所以这里可能有很多语法错误。但这是基本理念:

for x in /fullpath/uploads/item/*
do
    for y in uploads/item/$x/subitem/*
    do
        cd /fullpath/uploads/item/$x/subitem/$y
        mkdir report/
        mv * report/
    done
done

难道你不能在
y/
下创建一个文件夹
report/
,然后将
y/
中的所有文件移动到
report/
中吗?这根本不需要PHP

编辑:我的bash非常生锈,所以这里可能有很多语法错误。但这是基本理念:

for x in /fullpath/uploads/item/*
do
    for y in uploads/item/$x/subitem/*
    do
        cd /fullpath/uploads/item/$x/subitem/$y
        mkdir report/
        mv * report/
    done
done

您是否尝试过php的重命名:

rename("uploads/item/x/subitem/y","uploads/item/x/subitem/y/report");

您是否尝试过php的重命名:

rename("uploads/item/x/subitem/y","uploads/item/x/subitem/y/report");

@tskuzzy如果我理解正确,x和y是数字。当x和y是随机整数时,你不能只cd“uploads/item/x/subitem/y/”。对不起,编辑了我的答案。你仍然不应该使用PHP来完成这项工作。现在使用windows无法访问bash终端。我感谢你的帮助tskuzzy,但我严格要求提供PHP解决方案。我知道bash和windows命令行功能强大,可以单独完成,但php是我最强大的语言。我更新了我在原始问题中寻找的内容,它类似于您的批处理答案,只是在php中。干杯。@tskuzzy如果我理解正确,x和y是数字。当x和y是随机整数时,你不能只使用cd“uploads/item/x/subitem/y/”。对不起,编辑了我的答案。你仍然不应该使用PHP来完成这项工作。现在使用windows无法访问bash终端。我感谢你的帮助tskuzzy,但我严格要求提供PHP解决方案。我知道bash和windows命令行功能强大,可以单独完成,但php是我最强大的语言。我更新了我在原始问题中寻找的内容,它类似于您的批处理答案,只是在php中。干杯