Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP重命名每个子目录中的目录_Php_File Upload_Rename - Fatal编程技术网

PHP重命名每个子目录中的目录

PHP重命名每个子目录中的目录,php,file-upload,rename,Php,File Upload,Rename,嘿,伙计们,我正在努力解决一个棘手的问题。目前我有一个如下的folderstructure: 上传/Event-12/1234 Johne Doe/[…] 上传/Event-32/1234 Johne Doe/[…] 所以有很多事件都有自己的文件夹。其中有一个子文件夹,其名称类似于用户id(1234),后跟名字和姓氏。您可以看到John Doe先生在Event-12和Event-32中都有一个文件夹 但是如果约翰·多伊改变了他的名字(无论出于什么原因…),那该怎么办呢。所以我必须递归地重命名所有

嘿,伙计们,我正在努力解决一个棘手的问题。目前我有一个如下的folderstructure:

上传/Event-12/1234 Johne Doe/[…] 上传/Event-32/1234 Johne Doe/[…]

所以有很多事件都有自己的文件夹。其中有一个子文件夹,其名称类似于用户id(1234),后跟名字和姓氏。您可以看到John Doe先生在Event-12和Event-32中都有一个文件夹

但是如果约翰·多伊改变了他的名字(无论出于什么原因…),那该怎么办呢。所以我必须递归地重命名所有文件夹,否则所有链接都会断开

如何使用PHP实现这一点。通过提供文件夹的正确路径,我可以轻松地立即重命名文件夹。有什么好的解决方案可以让PHP搜索所有匹配的目录吗


问候。

我建议创建一个递归函数,使用
scandir()
并重命名找到的每个目录

从PHP手册:


话虽如此,我建议只使用用户ID作为文件夹名称。永远不要使用可以更新的变量来命名目录和存储用户数据。

我建议创建一个递归函数,使用
scandir()
并重命名找到的每个目录

从PHP手册:


话虽如此,我建议只使用用户ID作为文件夹名称。永远不要使用可以更新的变量来命名目录和存储用户数据。

您可以在此列出所有文件夹并重命名所需的文件夹

<?php
if ($handle = opendir('.')) {
    $blacklist = array('.', '..', 'somedir', 'somefile.php');
    while (false !== ($file = readdir($handle))) {
        if (!in_array($file, $blacklist)) {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

您可以在此列出所有文件夹,并重命名所需的文件夹

<?php
if ($handle = opendir('.')) {
    $blacklist = array('.', '..', 'somedir', 'somefile.php');
    while (false !== ($file = readdir($handle))) {
        if (!in_array($file, $blacklist)) {
            echo "$file\n";
        }
    }
    closedir($handle);
}
?>

是的,这是一个数据库驱动的应用程序吗?如果是这样,您不应该试图解决此问题。当你心脏病发作时,医生不会治疗这些症状:)你的应用程序正在尖叫着要求编码相当于三重旁路


我建议你先把文件夹里的名字去掉。重写脚本,只创建ID为的文件夹(我假设这是unqiue)-这样,更改名称无关紧要。

是的,这是一个数据库驱动的应用程序吗?如果是这样,您不应该试图解决此问题。当你心脏病发作时,医生不会治疗这些症状:)你的应用程序正在尖叫着要求编码相当于三重旁路


我建议你先把文件夹里的名字去掉。重写脚本,只创建ID为的文件夹(我假设这是unqiue)-这样,他们是否更改名称并不重要。

ja,这正是我要搜索的!ID only不可能,因为有些人想搜索用户文件夹:(是的,这正是我要搜索的!仅ID是不可能的,因为有些人想搜索用户文件夹。)(