Remove duplicate lines in a text file using php - Php

remove duplicate

Snippet Code


  
Rate this page :
  [ 0 votes]

Using this we can read and remove duplicate lines in a text file. Set the file permission of text file to 777 in linux.

<?php function remove_lines($Filepath, $IgnoreCase=false, $NewLine="n"){ if (!file_exists($Filepath)){ $ErrorMsg = 'RemoveDuplicatedLines error: '; $ErrorMsg .= 'The given file ' . $Filepath . ' does not exist!'; die($ErrorMsg); } $Content = file_get_contents($Filepath); $Content = remove_lines_string($Content, $IgnoreCase, $NewLine); if (!is_writeable($Filepath)){ //checks whether the file is writeable $ErrorMsg = 'RemoveDuplicatedLines error: '; $ErrorMsg .= 'The given file ' . $Filepath . ' is not writeable!'; die($ErrorMsg); } $FileResource = fopen($Filepath, 'w '); fwrite($FileResource, $Content); fclose($FileResource); } function remove_lines_string($Lines, $IgnoreCase=false, $NewLine="n"){ if (is_array($Lines)) $Lines = implode($NewLine, $Lines); $Lines = explode($NewLine, $Lines); $LineArray = array(); $Duplicates = 0; for ($Line=0; $Line < count($Lines); $Line ){ $CurrentLine = trim($Lines[$Line]); //removes empty spaces if ($CurrentLine == '') continue; $LineKey = $CurrentLine; if ($IgnoreCase) $LineKey = strtolower($LineKey); if (!isset($LineArray[$LineKey])) $LineArray[$LineKey] = $CurrentLine; else $Duplicates ; } asort($LineArray); return implode($NewLine, array_values($LineArray)); } //set the file permission of text.txt to 777 in Linux $remlines = remove_lines("test.txt"); echo $remlines; ?>

Tags


Ask Questions

Ask Question