0

PHP を使用して、FTP 経由でファイルをダウンロードします。

サーバーのファイル名を制御できません。

ディレクトリ内のファイルを取得するために使用ftp_nlistしますが、同じファイル名を使用して変更日を取得すると、結果として -1 (間違ったファイル名) が取得されます。

ftp_mdtm特殊文字 (ドイツ語の a または e など) を含むファイル名でのみ失敗します。

$list = ftp_nlist($ftpconn, FTP_PCPATH);
foreach($list as $file){
        $src_file = FTP_PCPATH . DIRECTORY_SEPARATOR . $file;
        $md = ftp_mdtm($ftpconn, $src_file);
        if($md == -1){
            echo $src_file . ": " . $md . "\n";
        }
    }

これにより、特殊文字を含むすべてのファイル名と -1 の結果が出力されます。

解決策はありますか?

4

1 に答える 1

0

Unicode サポートの問題のようです。PHP は、しばらくの間、Unicode (ほとんど) をサポートしています。FTP サーバーで BINARY モードがオンになっていますか、それとも Unicode サポートをサポートしていないか、アクティブ化されていませんか?

ターミナルを使用してこのサーバーに FTP 接続し、特殊文字を含むファイルに対して操作を実行しようとするとどうなりますか?

于 2012-09-28T22:56:16.137 に答える