文字

SplFileObject::next

(PHP 5 >= 5.1.0)

SplFileObject::nextRead next line

说明

public void SplFileObject::next ( void )

Moves ahead to the next line in the file.

参数

此函数没有参数。

返回值

没有返回值。

范例

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 ();
}
?>

参见

  • SplFileObject::current() - Retrieve current line of file
  • SplFileObject::key() - Get line number
  • SplFileObject::seek() - Seek to specified line
  • SplFileObject::rewind() - Rewind the file to the first line
  • SplFileObject::valid() - Not at EOF

用户评论:

[#1] Jonnycake [2014-12-02 17:53:17]

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);
?>

上一篇: 下一篇: