PHP による中国語のファイルとフォルダーの処理に関する問題
PHP ファイル UTF-8 形式の場合、
file_exists で必要な中国語のエンコード形式は gbk?
したがって、一般的には
を使用します$path = iconv('utf-8', 'gbk', '/data/wwwroot/dvis/cp/video/test ディレクトリ/セカンダリ ディレクトリ/中国空母.mp4');
この形式は gbk エンコードに変換されます。
そのようなパスは file_exists によって決定できます
しかし、ファイルを別のフォルダーに移動したいときに問題が見つかりました
rename($path, $dst); は false を返し、移動や名前変更はできません
対象が英語でファイル名のみが中国語の場合はリネームが実行可能です。
上記のようなパスだと動作しません。
代わりに copy($path, $dst); を使用し、その後 unlink($path); を実行すると、元のファイルがまだ削除できないことがわかります。
?
名前変更リンク解除操作は中国語のフォルダーでは実行できませんが、中国語のファイルでは実行できることがわかります。 、
具体的な原因はまだ判明していないので、まずは記録としてブログに書きます
?
消去しましたが、許可の問題であることが判明しました。リナックス。 FTP ツールの Filezilla は中国語を十分にサポートしていないため、フォルダーのアクセス許可を変更できず、アクセス許可の問題に注意を払っていませんでした。