2017-08-17 2 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

なぜ私はdownvotedになっていますか? – Andreas

+0

私は間違った機能を使用していたので、少し不快なdownvoteにはありませんか?フレンドリーなコメントで十分でしょうか? – Andreas

0

あなただけのPHPでLinuxコマンドを使用することができます。新しい名前に

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

これを試してみてください。

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

は、新しい名前への絶対リンクの代わりに、相対的な1つの

+0

名前を変更(realpath(dirname(user))。 '/ $ log_username'、realpath(dirname(user)) '/ $ un');それは言う:通知されていない定数ユーザーの使用 - 想定された 'ユーザー'の使用 –

+0

定数ではなく文字列として代わりに文字列として使用しないdirname(__ FILE __)) 'user/$ log_username' __FILE__はPHPの魔法の定数です。http ://php.net/manual/en/language.constants.predefined.php aww。 stackoverflowが空白文字なしで_ _ FILE _ _コードを再設定しました... –

関連する問題