| 
						 | 
						- <?php
 - namespace App\Console\Commands;
 - use Illuminate\Console\Command;
 - use Laravel\Lumen\Routing\DispatchesJobs;
 - use Log;
 - use DateTime, DateTimeZone;
 - 
 - class Cleanfile extends Command {
 - 
 -   protected $signature = 'clean:file {in} {out}';
 -   protected $description = 'Discard duplicate out of order data from a file';
 - 
 -   public function handle() {
 -     $in = $this->argument('in');
 -     $out = $this->argument('out');
 - 
 -     $fp = @fopen($in, 'r');
 -     $outf = @fopen($out, 'w');
 -     if($fp && $outf) {
 - 
 -       $last = false;
 -       while(($line = fgets($fp)) !== false) {
 -         $cur = new DateTime(substr($line, 0, 26), new DateTimeZone('UTC'));
 - 
 -         if(!$last) {
 -           $last = new DateTime(substr($line, 0, 26), new DateTimeZone('UTC'));
 -           fwrite($outf, $line);
 -         } else {
 -           if((double)$cur->format('U.u') > (double)$last->format('U.u')) {
 -             fwrite($outf, $line);
 -             $last = new DateTime(substr($line, 0, 26), new DateTimeZone('UTC'));
 -           } else {
 -             Log::info("Discarding line");
 -           }
 -         }
 -       }
 -       fclose($fp);
 -       fclose($outf);
 - 
 -     } else {
 -       Log::error("Could not find input file");
 -     }
 -   }
 - 
 - }
 
 
  |