php删除文本文件中重复行的方法

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了php删除文本文件中重复行的方法脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

本文实例讲述了PHP删除文本文件中重复行的方法分享给大家供大家参考。具体分析如下:

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

<PRe class="brush:PHp;"> /** * RemoveDuplicatedLines * This function removes all duplicated lines of the given text file. * * @param string * @param bool * @return string */ function 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 string
    */
    function RemoveDuplicatedLinesByString($Lines,$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 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));
    }

脚本宝典总结

以上是脚本宝典为你收集整理的php删除文本文件中重复行的方法全部内容,希望文章能够帮你解决php删除文本文件中重复行的方法所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。