Monday, 3 February 2014

Read a File line by line

Read Line From File

<?php/**
 *
 * Read a line number from a file
 *
 * @param    string    $file    The path to the file
 * @param    int    $line_num    The line number to read
 * @param    string    $delimiter    The character that delimits lines
 * @return    string    The line that is read
 *
 */
function readLine($file$line_num$delimiter="\n")
{
    
/*** set the counter to one ***/
    
$i 1;

    
/*** open the file for reading ***/
    
$fp fopen$file'r' );

    
/*** loop over the file pointer ***/
    
while ( !feof $fp) )
    {
        
/*** read the line into a buffer ***/
        
$buffer stream_get_line$fp1024$delimiter );
        
/*** if we are at the right line number ***/
        
if( $i == $line_num )
        {
            
/*** return the line that is currently in the buffer ***/
            
return $buffer;
        }
        
/*** increment the line counter ***/
        
$i++;
        
/*** clear the buffer ***/
        
$buffer '';
    }
    return 
false;
}
?>
<?php/*** make sure the file exists ***/$file 'my_file.txt';

if( 
file_exists$file ) && is_readable$file ) )
{
    echo 
readLine($file6);
}
else
{
    echo 
"Cannot read from $file";
}
?>
On PHP 5 and later versions
<?php/*** the file to read ***/$file 'foo.txt';

        
/**
 *
 * Read a line number from a file
 *
 * @param    string    $file    The path to the file
 * @param    int    $line_num    The line number to read
 * @return    string    The line that is read
 *
 */
function readLine$file$line_number )
{
        
/*** read the file into the iterator ***/
        
$file_obj = new SplFileObject$file );

        
/*** seek to the line number ***/
        
$file_obj->seek$line_number );

        
/*** return the current line ***/
        
return $file_obj->current();
}

echo 
readLine$file345678 );?>

No comments:

Post a Comment