Я фактически разрабатываю класс, который позволяет мне открывать файл и читать его построчно.
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
.
Спасибо