21,894
社区成员




<?php
$demo = 'demo.txt';
$handle = fopen($demo, 'r');
$readLines = 4; $pos = -1; $data = array();
while ($readLines){
$curChar = '';
while ($curChar != "\n"){
$ftell = ftell($handle);
fseek($handle, $pos,SEEK_END);
$curChar = fgetc($handle);
$pos--;
if(!($ftell-1)) break;
}
$readLines--;
}
//指针==1 但是读不到内容
echo '#'.$curPointer = ftell($handle).'#';
var_dump(fread($handle,4096));
echo '<br />';
//调用fseek重置指针之后 可以获取到内容
fseek($handle, $curPointer);
echo '#'.ftell($handle).'#';
var_dump(fread($handle,4096));
1
2
3
4
<?php
$demo = 'demo.txt';
$handle = fopen($demo, 'r');
$readLines = 4; $pos = -1; $data = array();
while ($readLines){
$curChar = '';
while ($curChar != "\n"){
$ftell = ftell($handle);
fseek($handle, $pos,SEEK_END);
$curChar = fgetc($handle);
$pos--;
if(!($ftell-1)) break;
}
$readLines--;
}
//指针==1 但是读不到内容
echo '#'.$curPointer = ftell($handle).'#';
var_dump(ord(fgetc($handle)));
//var_dump(fread($handle,4096));
echo '<br />';
//调用fseek重置指针之后 可以获取到内容
fseek($handle, $curPointer);
echo '#'.ftell($handle).'#';
//var_dump(fread($handle,4096));
var_dump(ord(fgetc($handle)));
#1#int(0)
#1#int(13)
$handle = fopen($demo, 'r');
$readLines = 2;
fseek($handle, 0, SEEK_END); //定位到之后一个字符
while($readLines) {
if(fseek($handle, -2, SEEK_CUR) < 0) {
fseek($handle, 0, SEEK_SET);
break;
}
if(fgetc($handle) == "\n") $readLines--;
}
echo fread($handle,4096);