首页 > 编程 > PHP > 正文

php操作文本文件删除重复行

2020-03-22 18:35:47
字体:
来源:转载
供稿:网友
本篇文章主要介绍php操作文本文件删除重复行,感兴趣的朋友参考下,希望对大家有所帮助。

本文实例讲述了php删除文本文件中重复行的方法。具体分析如下:

这个php函数用来删除文件中的重复行,还可以指定是否忽略大小写,和指定换行符

/** * RemoveDuplicatedLines * This function removes all duplicated lines of the given text file. * @param string * @param bool * @return stringfunction RemoveDuplicatedLines($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 = RemoveDuplicatedLinesByString($Content, $IgnoreCase, $NewLine); // Is the file writeable? if (!is_writeable($Filepath)){ $ErrorMsg = RemoveDuplicatedLines error:  $ErrorMsg .= The given file . $Filepath . is not writeable!  die($ErrorMsg); // Write the new file $FileResource = fopen($Filepath, w+  fwrite($FileResource, $Content);  fclose($FileResource);  * RemoveDuplicatedLinesByString * This function removes all duplicated lines of the given string. * @param string * @param bool * @return stringfunction RemoveDuplicatedLinesByString($Lines, $IgnoreCase=false, $NewLine= /n ){ if (is_array($Lines)) $Lines = implode($NewLine, $Lines); $Lines = explode($NewLine, $Lines); $LineArray = array(); $Duplicates = 0; // Go trough all lines of the given file for ($Line=0; $Line count($Lines); $Line++){ // Trim whitespace for the html' target='_blank'>current line $CurrentLine = trim($Lines[$Line]); // Skip empty lines if ($CurrentLine == ) continue; // Use the line contents as array key $LineKey = $CurrentLine; if ($IgnoreCase) $LineKey = strtolower($LineKey); // Check if the array key already exists, // if not add it otherwise increase the counter if (!isset($LineArray[$LineKey])) $LineArray[$LineKey] = $CurrentLine;  else  $Duplicates++; // Sort the array asort($LineArray); // Return how many lines got removed return implode($NewLine, array_values($LineArray)); }

使用范例:

// Example 1// Removes all duplicated lines of the file definied in the first parameter.$RemovedLinesCount = RemoveDuplicatedLines( test.txt print Removed $RemovedLinesCount duplicate lines from the test.txt file. // Example 2 (Ignore case)// Same as above, just ignores the line case.RemoveDuplicatedLines( test.txt , true);// Example 3 (Custom new line character)// By using the 3rd parameter you can define which character// should be used as new line indicator. In this case// the example file looks like foo;bar;foo;foo and will// be replaced with foo;bar RemoveDuplicatedLines( test.txt , false, 

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。

相关推荐:

常见的php异常处理方法

PHP数组融合的两种方法

php操作session及数据库的方法

以上就是php操作文本文件删除重复行的详细内容,PHP教程

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表