4

ディレクトリ内にファイルがあり、 rename( arg1, arg2 ) を使用して arg1 ファイルの名前を変更しようとしています。

ただし、arg1 ファイルにはアジア文字が含まれており、ファイルが利用できないというメッセージが表示されます。

どうすればこの問題を解決できますか

ありがとう

    $elements = scandir($dir);


foreach ($elements as $key => $value) 
{

    rename("./$value", "$newname");

}
4

1 に答える 1

1

パスを正しく配置してください。

$elements = scandir($dir);
foreach ($elements as $key => $value) {
    rename($dir.'/'.$value, $dir.'/'.$newname);
}

抽象度を下げるために、$dir が "/home/someuser/somefiles" のようなもので、スクリプトが "/var/www/script.php" にあると仮定すると、すべてのファイル ("oldname.txt" など) をscandir($dir) であるため、ファイルへの絶対パスは「/home/someuser/somefiles/oldname.txt」ですが、「./oldname.txt」を名前変更関数に渡しています。これは実際には「/var」です。 /www/oldname.txt"

于 2012-08-13T22:20:27.033 に答える