【发布时间】:2011-07-27 20:55:44
【问题描述】:
在外部 FTP 服务器上有一个带有 utf8 编码(如果我是正确的)的 .TXT 文件。我想通过一个 php 脚本把它下载到我自己的 ftp 服务器上。 所以我写了一个脚本,但是当我查看 .txt 时,我看到字符应该是 é 看起来像 ën。 我怎样才能正确地做到这一点? (另外,如果我再次运行相同的脚本,我希望 用新文件替换旧文件)。这是我的代码:
<?php
// connecting with ftp server
$connection_id = ftp_connect('ftp.example.com');
// login with username and password
$login = ftp_login($connection_id, 'username', 'password');
// check connection
if ((!$connection_id) || (!$login)) {
echo 'FTP connection has failed.';
exit();
} else {
echo 'Connection succeeded.';
}
$local_file = 'home/file.TXT';
$server_file = '/file.TXT';
// open file
$handle = fopen($local_file, 'w+');
// try to download txt file and save it locally
if(ftp_fget($connection_id, $handle, $server_file, FTP_BINARY, 0)) {
echo 'Succesfully written to '.$local_file;
} else {
echo 'Not succesfully downloaded!';
}
// close file handler
fclose($handle);
//close the connection
ftp_close($connection_id);
?>
顺便说一句,有人知道如何通过按空格四次不缩进每一行来简化在 stackoverflow 上显示代码的工作吗?
【问题讨论】:
-
$local_file或$localfile?无论如何,FTP 传输与文件内容无关,您只需获取文件中的任何内容。文件好像是用 UTF-8 编码的,所以就这样处理吧。 -
文件下载后,您会以哪种方式“查看”文件?本地编辑?网络浏览器?
-
我通过本地编辑器和火狐浏览它。 @Kerrek SB,谢谢你注意到这一点!
-
@Orhan 要将文本缩进 4 个空格,只需选择文本块并按
ctrl+K