The PHP 5 command-line version now allows individual line processing, similar to Perl and awk.
Use these flags on the command line to alter PHP's behavior:
Run this code before processing the file. This is similar to auto_prepend_file.
Run this code on each line of the file.
Run this code at the end of processing the file. This is similar to auto_append_file.
The contents of the current line are available in $argn. This simple example prints each line of example.txt:
$ php -R 'print "$argn\n" ;' < example.txt 1 2 3 4 5
The current line number is stored in $argi. The first line of the file is line 1 (not 0). So, to print out select lines of a file, do this:
$ php -B '$start = 2; $stop = 4;' -R 'if ($argi >= $start && $argi <= $stop) print "$argn\n";' < example.txt 2 3 4
Modifying standard input disrupts the flow. For instance:
$ php -R 'print fgets(STDIN);' < example.txt 2 4
Using the -R flag causes PHP to read in one line from standard input. Therefore, when you call fgets( ), you read in a second line. This results in "missing" lines because both PHP and you are processing the file.