PHP Programming Spring 2015
Exercises: File Search and Update
0. Retrieve:
Prepare a script for reading through a file and printing all of the records.
This operation involves opening [i.e. fopen($fileName, $mode)] the file for
input and returning a file pointer(e.g. $fp), utilizing an iteration control
structure (loop) controlled by the outcome of an attempt to get a file string
(e.g. fgets($fp), and with statement body containing statements to extract
each a field [e.g. use substr($string, $start, $length) ] for printing. In
addition to the fields, print the record starting position [i.e. use a
statement such as $pos = ftell($fp)] and record length [i.e. a statement
such as $len = strlen($recordVar)]. Note the program example RetrieveMoto.php
performs this operation.
1. Search:
Prepare a script for reading through a file to locate and print a record
having a particular key value. This operation involves opening [i.e. fopen(
$fileName, $mode) ] the file for input and returning a file pointer(e.g. $fp),
utilizing an iteration control structure (loop) controlled by the outcome of
an attempt to get a file string (e.g. fgets($fp), and with statement body
containing statements to extract a record key [e.g. use substr($string, $start,
$length) ], test whether that record key equals a search key value, and when
true, echo or print( ) the record data. Afterwards, the file should be closed
[i.e. fclose($fp)].
Note: the program example SearchMoto.php performs this operation.
2. Update:
Prepare a script for reading through a file to locate and update a record
having a particular key value. This operation involves opening [i.e. fopen(
$fileName, $mode) ] the file for input and returning a file pointer(e.g. $fp),
computing the record starting position [$pos = ftell($fp)], utilizing an
iteration control structure (loop) controlled by the outcome of an attempt
to get a file string (e.g. fgets($fp), and with statement body containing
statements to extract a record key [e.g. use substr($string,$start,$length)],
test whether that record key equals a search key value, and when true,
modify the record (fields) with substr_replace($string,$replacement,$start,
$length), then rewrite the record. To rewrite in the original location
requires seeking the record start [i.e. fseek($fp,$pos)] before replacing
the record [fputs($fp,$string)]. Before the next iteration begins, recompute
the record position [$pos = ftell($fp)]. After the loop terminates, the file
should be closed [i.e. fclose($fp)]. The program example UpdateOneMoto.php
performs this operation.
3. Modify UpdateOneMoto.php to assign record values posted from a form. The form
is to have text box for the key, button for field to update, a replacement,
value plus a submit button initiating the action to invoke the php code to
access the relevant record, and replace the price(cost) value before
replacing the record in its original place relative to the file starting
position. The program example UpdateMoto.php performs this operation.