用PHP替换文本文件中的重复项?

时间:2012-02-29 02:02:58

标签: php arrays array-unique

我的文本文件包含数千个这样的名字列表

DallasWebJobs
DallasWebJobs
DallasWebJobs
php_gigs
brotherjudkins
goldbergwb
SanDiegoWebJobs
brinteractive
muracms
browan85
php_gigs
php_gigs
php_gigs
php_gigs

每行1个名称,1个文件可能最多有30,000个名称,但我需要替换所有重复的名称,因为可能多达一半是重复的。

我想在PHP中执行此操作,1虽然将每行导入MySQL数据库然后执行但是这看起来有点矫枉过正,我确信有一种更简单的方法。

如果可以,请帮忙


更新我发现这封电子邮件,它应该也可以使用

$list = file('./Emailist.txt');
$list_unique = array_unique($list);
foreach ($list_unique as $mail) {
    echo $mail;
}

3 个答案:

答案 0 :(得分:1)

来自php.net:serg dot podtynnyi at gmail dot com 06-Feb-2009 11:21

//从文本文件中删除重复项并将结果转储到一个文件中,例如:电子邮件列表,链接列表等

<?php 

$data1 = file("data1.txt");  

file_put_contents('unique.txt', implode('\n', array_unique($data1))); 
?>

这将删除所有重复项,并将其另存为unique.txt

文件

<?php 

$data1 = file("data1.txt"); 

$uniqueArray = array_unique($data1)); 
?>

将其存储在$uniqueArray

答案 1 :(得分:0)

$lines = file("test-file");

foreach($lines as $line)
{
    $new[str_replace(array("\n","\r"),"",$line)] = 1;
}

print_r(array_keys($new));

答案 2 :(得分:0)

$file = file_get_contents($filename);
$arr = array();
$arr = split('\n',$file);
$arr = array_unique($arr);

然后再次将$arr的内容写入文本文件