PHP重命名每个子目录中的目录
嘿,伙计们,我正在努力解决一个棘手的问题。目前我有一个如下的folderstructure: 上传/Event-12/1234 Johne Doe/[…] 上传/Event-32/1234 Johne Doe/[…] 所以有很多事件都有自己的文件夹。其中有一个子文件夹,其名称类似于用户id(1234),后跟名字和姓氏。您可以看到John Doe先生在Event-12和Event-32中都有一个文件夹 但是如果约翰·多伊改变了他的名字(无论出于什么原因…),那该怎么办呢。所以我必须递归地重命名所有文件夹,否则所有链接都会断开 如何使用PHP实现这一点。通过提供文件夹的正确路径,我可以轻松地立即重命名文件夹。有什么好的解决方案可以让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中都有一个文件夹 但是如果约翰·多伊改变了他的名字(无论出于什么原因…),那该怎么办呢。所以我必须递归地重命名所有
问候。我建议创建一个递归函数,使用
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是不可能的,因为有些人想搜索用户文件夹。)(