All pastes #1698988 Raw Edit

excluder.php

public php v1 · immutable
#1698988 ·published 2009-12-02 20:19 UTC
rendered paste body
<?php/* Takes one file as a filter and N files as filtered. Excludes whatever lines are in the filter from the filtered and echoes everything to outX.txt */$files = array();switch($argv[1]) {	case NULL:	case "-h": echo "Syntax: php excluder.php [filter filtered[filteredN]|-h]\n"; die(); break;	default:		if($argc > 1) {			unset($argv[0]);			$files = array_values($argv);		}		else {			$error = 2;		}		break;}foreach($files as $file) {	if(!file_exists($file)) {		$error = 1;	}}switch($error) {	case 1: die("FATAL: One or more of the files you specified do not exist\n"); break;	case 2: die("FATAL: You didn't specify at least one file to process\n"); break;	default: echo date("[Y-m-d h:i:s]")." Everything OK. Starting check...\n"; break;}$filecounter = 1;while(!$out) {	if (!file_exists("out".$filecounter.".txt")) {		$out = fopen("out".$filecounter.".txt", "a");	}	else {		$filecounter++;	}}$filter = fopen($files[0], "r");while(!feof($filter)) {	$filterlines[str_replace("\n", "", fgets($filter))] = "Y";}fclose($filter);unset($files[0]);$files = array_values($files);foreach($files as $file) {	$inprocess = fopen($file, "r");	while(!feof($inprocess)) {		$line = fgets($inprocess);		if(!isset($filterlines[str_replace("\n", "", $line)])) {			fwrite($out, str_replace("\n", "", $line)."\n");		}	}	fclose($inprocess);	echo date("[Y-m-d h:i:s]")." Finished file ".$file."\n";}?>