SplFileObject::next

(PHP 5 >= 5.1.0)

SplFileObject::nextRead next line

Description

public void SplFileObject::next ( void )

Moves ahead to the next line in the file.

Parameters

This function has no parameters.

Return Values

No value is returned.

Examples

Example #1 SplFileObject::next() example

<?php
// Read through file line by line
$file = new SplFileObject("misc.txt");
while (!
$file->eof()) {
    echo 
$file->current();
    
$file->next();
}
?>

See Also

Коментарии

Автор:
Quick note when using next(), it appears that you have to already be at the end of the line in order for it to hop to the next one.  I realized this while attempting to do a lineCount implementaiton like the following:

<?php
 
function lineCount($file)
  {
     
$x=0;
     while(!
$file->eof()) {
         
$x++;
         
$file->next();
     }
     return 
$x;
  }
 
$file=new SplFileObject("something");
  echo 
lineCount($file);
?>

It ended up in an infinite loop.  The solution was to just call fgets()/current() in the loop, although it wasn't being used anywhere so the following works:

<?php
 
function lineCount($file)
  {
     
$x=0;
     while(!
$file->eof()) {
         
$file->current();
         
$x++;
         
$file->next();
     }
     return 
$x;
  }
 
$file=new SplFileObject("something");
  echo 
lineCount($file);
?>
2014-12-02 19:53:17
http://php5.kiev.ua/manual/ru/splfileobject.next.html
As @Jonnycake  pointed there is no documentation about the following behavior of  next();

You need to call current() to really move forward without the need of a source loop.

Be:
<?php
$file 
= new SplFileObject("file.txt");

echo 
PHP_EOL $file->current();
$file->next();
 
$file->next();
 
$file->next();
echo 
PHP_EOL $file->current(); // 2nd line of the file

?>

<?php
$file 
= new SplFileObject("file.txt");

echo 
PHP_EOL $file->current();
$file->next(); $file->current();
$file->next(); $file->current();
$file->next(); 
echo 
PHP_EOL $file->current(); // be the 4th line of the file

?>

Honestly, I don't know if it is  waste of memory and/or CPU .
2017-05-22 00:03:01
http://php5.kiev.ua/manual/ru/splfileobject.next.html

    Поддержать сайт на родительском проекте КГБ