我想下载或从FTP服务器读取文件的一部分,而不是下载整个文件,这只是为了查看FTP服务器中存在的数据是正确的。
我们有这么多的客户端,FTP服务器中的每个文件可能有任意大小,因此,我不是要下载或来读取完整的文件,而是要下载或读取文件的一部分,比如说我只需要5kb的文件,或者仅从文件的第100行开始。
我在PHP中有一个如下所示的函数,它完成了一半的工作,但是对于较大的文件,它会失败。
function readByBytes($path)
{
try {
$handle = @fopen($path, "rb");
if ($handle)
{
while (($buffer = fgets($handle, 4096)) !== false) {
}
if (!feof($handle)) {
echo "Error: unexpected fgets() fail\n";
}
fclose($handle);
}
} catch (Exception $e) {
echo $e;
}
}
$filename="ftp://username:[email protected]/prod/clientfeed.csv";
$iterator = readByBytes($filename);
foreach ($iterator as $key=>$iteration) {
///if file read is 5kb or some 100 lines
break;
}
有人可以用PHP或Python帮助我或指导我吗预先感谢。
如果只想读取文件的一部分,则只需删除while
循环并只调用fgets
一次。
// Read the first 4KB
$buffer = fgets($handle, 4096);