CLI Now Allows Individual Line Processing
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:
-
-B
Run this code before processing the file. This is similar to
auto_prepend_file
.-
-R
Run this code on each line of the file.
-
-E
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.txt1
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.txt2
3
4
Modifying standard input disrupts the flow. For instance:
$ php -R 'print fgets(STDIN);' < example.txt2
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.
Get Upgrading to PHP 5 now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.