Detecting Error is easy .. Imagine
log.txt
xxx
XXXfield1XXX
value1
xxx
xxx
XXXfield2XXX <----- Note that this field has no value
xxx
xxx
XXXfield3XXX
value3
xxx
value3
xxx
Simple Scanner
$fileSource = "log.txt";
$tagRow = "xxx";
$tagField = "XXX";
$rh = fopen($fileSource, 'rb');
if (!$rh) {
trigger_error("Can't Start File Resource");
}
echo "<pre>";
$i = 0;
while ( ! feof($rh) ) {
$l = trim(fgets($rh));
if ((($i % 4) == 0 || ($i % 4) == 3) && $l != $tagRow) {
echo "Row tag error line $i \n";
break;
}
if (($i % 4) == 1 && strpos($l, $tagField) !== 0) {
echo "Missing Field tag line $i \n";
break;
}
if (($i % 4) == 2 && (strpos($l, $tagRow) === 0 || strpos($l, $tagRow) === 0)) {
echo "Fixed Missing Value line $i \n";
break;
}
$i ++;
}
fclose($rh);
Output
Fixed Missing Value line 6