2017-08-17 79 views
0

我想重命名一个包含文件的文件夹,但它不起作用。在数据库中,它已成功更改,但该文件夹未获取新名称。如何重命名其中包含内容的文件夹? - PHP

代码:

if (file_exists("user/$log_username")) { 
    rename("user/$log_username", "user/$un"); 
} 

在文件夹里有一些照片和文件,但我想的问题是,我想,当它运行在服务器上的文件夹重命名。用户登录后,当我想重命名他/她的文件夹时,但如果我第一次注销用户,$log_username将等于无。有没有解决方法?

+0

复制文件夹的新名称,并删除旧文件夹? – Andreas

+0

好的,我会试试 –

+0

你会得到什么错误信息? – axiac

回答

1

复制文件夹复制到新的名称,并删除旧文件夹时,该用户已登录,以确保所有的工作,因为它是应该而用户在
或者当用户的会话结束时可以保持登录状态。选择合适的。

// Copy the folder 
copy("user/$log_username", "user/$un"); 

//Update database 
//Some code here 

// When user logs out 
Unlink("user/$log_username"); 
+0

['rmdir()'](http://php.net/manual/en/function.rmdir.php)失败,如果目录不为空。 – axiac

+0

为什么我会陷入低谷? – Andreas

+0

对downvote有点不公平,因为我使用了错误的功能不是吗?我的意思是友好的评论就够了? – Andreas

0

你可以只在PHP中使用Linux命令:

exec("mv $oldname $newname"); 
2

试试这个:

rename(realpath(dirname(__FILE__)).'/myoldfolder',realpath(dirname(__FILE__)).'/mynewfolder'); 

应与绝对链接工作,而不是一个相对一个

+0

尝试以下代码:rename(realpath(dirname(user))。'/ $ log_username',realpath(dirname(user))。'/ $ un');它说:注意:使用未定义的常量用户 - 假设为'user' –

+0

不要使用它作为常量,而是作为字符串代替dirname(__ FILE __))。'user/$ log_username' __FILE__是一个PHP神奇常量:http ://php.net/manual/en/language.constants.predefined.php aww。 stackoverflow重新配置代码_ _ FILE _ _没有空格... –

相关问题