0
我實際上正在開發一個允許我打開文件的類&逐行讀取它。如何在不使用fgets()&file()的情況下前往第n行?
class File
{
protected $path = null;
protected $cursor = null;
protected $lineCount = 0;
public function isOpen()
{
return !is_null($this->cursor);
}
public function open($flag = 'r')
{
if(!$this->isOpen())
$this->cursor = fopen($this->path, $flag);
}
public function getLine()
{
$this->open();
$line = fgets($this->cursor);
$this->lineCount++;
return $line;
}
public function close()
{
if($this->isOpen())
fclose($this->cursor);
}
}
出於某種原因,我想在這是由lineCount
屬性描述行打開文件。我不知道如何更新open()
這樣做的方法。
除了使用行數外,我可以使用八位字節中文件開頭的大小,並使用fseek
方法將光標移動到正確的位置。但我不知道如何在調用fgets
方法時獲得八位字節的大小。
感謝
文件在會話之間不會改變。使用ftell()&fseek()的解決方案可以很好地工作。謝謝 ! – egeloen