问题描述:
   我需要从远程ftp服务器上每隔一段时间就区下载一个日志文件,该日志文件以一定的速度递增,考虑到如果每次下载都把整个文件下下来,势必会浪费不必要的带宽(重要的业务要求我这样做),因此,我准备实现增量下载.即:第一次把日志文件下载下来后,在本地保存副本,并记录日志文件的文件大小(以字节计算).第二次下载的时候,只需要从远程日志文件的偏移量处下载(此偏移量为前一次下载后的本地日志文件的大小).具体实现为,利用php ftp函数:
bool ftp_get ( resource ftp_stream, string local_file, string remote_file, int mode [, int resumepos] )
指定最后一个参数为偏移量.(参数 resumepos 仅在适用于 PHP 4.3.0 以上版本)
由此可以实现文件的增量下载.但是问题在于:
有时候,下载回来的增量文件内容会出现乱码,要么位于文件尾,要么位于文件头,观察其大小,也很有规律,几乎都是前一次下栽下来的日志文件的2倍,只不过多出来的空间都用乱码填充了.直接用cat 文件名 看不到乱码,用vi编辑器却可以看到.这个问题捆饶了很久,一直找不到解决方案,希望CSDN上的php达人知这支着.不盛感激!~另外:该问题在php的官方手册有用户提出过,详见:"用户提交的注释"的第一项例子,我试过他给出的解决方法,始终不能解决我的问题.