嘿伙计们我正在尝试解决一个棘手的问题。目前我有这样的文件夹结构:
上传/活动-12/1234-副结核病-DOE / [...] 上传/活动-32/1234-副结核病-DOE / [...]
所以有很多事件都有自己的文件夹。在那里有一个子文件夹,其名称类似于用户的ID(1234),后跟名字和姓氏。您可以看到John Doe先生在Event-12和Event-32中都有一个文件夹。
但是如果John Doe改变了他的名字(无论出于何种原因......)。所以我必须递归重命名所有文件夹,否则所有链接都会被破坏。
如何用PHP做到这一点。我可以通过给出正确的路径来轻松地重命名文件夹。有没有什么好的解决方案让PHP搜索所有匹配的目录?
问候。
答案 0 :(得分:2)
您可以列出此link中的所有文件夹,并重命名所需的文件夹。
<?php
if ($handle = opendir('.')) {
$blacklist = array('.', '..', 'somedir', 'somefile.php');
while (false !== ($file = readdir($handle))) {
if (!in_array($file, $blacklist)) {
echo "$file\n";
}
}
closedir($handle);
}
?>
答案 1 :(得分:1)
我建议创建一个使用scandir()
的递归函数,并重命名它找到的每个目录。
从PHP手册:http://www.php.net/manual/en/function.scandir.php
这就是说,我建议只使用用户ID作为文件夹名称。您永远不应该使用可以更新的变量来命名目录和存储用户数据。
答案 2 :(得分:0)
Yepp,这是一个数据库驱动的应用程序吗?如果是这样,您不应该尝试解决此问题。当你心脏病发作时,医生不会对症状进行治疗:)你的应用程序正在为相当于三重旁路的编码而尖叫。
我建议你先从文件夹中删除名字。重写你的脚本只创建带有ID的文件夹(我认为这是unqiue) - 这样,如果他们更改了他们的名字并不重要。