Simple filed data filtering, line by line
<?php
/**
* Filters file line by line
* @param string $sourceFile filepath
* @param array $filter ["lookingFor" => "replacedBy"]
*/
function filterData($sourceFile=null, $filter=null) {
if(!$sourceFile || !$filter) return null;
$filteredData = "";
$handle = fopen($sourceFile, "r");
if ($handle) {
while (($line = fgets($handle)) !== false) {
$filteredLine = filterLine($line, $filter);
$filteredData.= $filteredLine;
}
fclose($handle);
} else {
// error opening the file.
}
return $filteredData;
}
/**
* Filers line
* @param string $line
* @param array $filter ["lookingFor" => "replacedBy"]
*/
function filterLine($string, $filter){
$filteredLine = $string;
foreach($filter as $lookingFor => $replacedBy)
{
$filteredLine = str_replace($lookingFor, $replacedBy, $filteredLine);
}
return $filteredLine;
}
//Start
$sourceFile = __DIR__."/extracted.txt";
$ouptutFile = __DIR__."/filtered.txt";
$filter = ["../" => ""];
$filteredData = filterData($sourceFile, $filter);
file_put_contents($ouptutFile, $filteredData);