2012-12-01 48 views
2

我需要以64个字节遍历64个字节的文本文件。我希望接下来的64个字节在上一个开始位置之后开始一个字符! fread($handle,64)从前面字节的末尾开始下一个字节。PHP:从文本文件中获取下一个n个字节

某事像这样:

文本文件包含:

abcdefghi 

得到每3个字节:

abc 
bcd 
cde 
... 

回答

4

使用fseek()使用fread()前重新设定文件指针位置。是这样的:

for($i=0; $i <= ($filelength-64), $i++){ 
    fseek($handle, $i); 
    $data = fread($handle, 64); 
    // process data... 
} 
+1

好吧,如果它们会自动使用相同的文件句柄,指针更新。没有必要去寻找它。 –

+0

@BradKoch:好像你错误地理解了这个问题 - 下一个fread()应该不会从最后一个结束的地方开始(在最好的情况下你是正确的),而只是最后一个_starting_点之后的一个字节。 – oezi

+0

你是对的,错过了。 –

0

试试这个

for ($line = 0; $line < 64; ++$line) 
{ 
    $str = fread($handle, 64); 
    for ($col = 0; $col < 63; col += 3) 
    { 
     $data = substr($str, $col, 3); 
     echo "$data\n"; 
    } 
} 
相关问题