Question

J'ai des fichiers texte qui ont une liste de milliers de noms comme celui-ci

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

1 nom par ligne, 1 fichier peut avoir jusqu'à 30 000 noms dessus et je dois remplacer tous les noms en double, car probablement jusqu'à la moitié sont des doublons.

Je voudrais le faire dans PHP, 1 cependant, importait chaque ligne dans une base de données MySQL, puis le faisait, mais cela semble exagéré, je suis sûr qu'il y a un moyen plus facile.

S'il vous plait aidez si vous le pouvez


Mise à jour, j'ai trouvé cela pour les e-mails, cela devrait aussi fonctionner

$list = file('./Emailist.txt');
$list_unique = array_unique($list);
foreach ($list_unique as $mail) {
    echo $mail;
}
Était-ce utile?

La solution

De php.net: serg dot podynnyi à gmail dot com 06-feb-2009 11:21

// Supprimer les doublons d'un fichier texte et de vider le résultat dans un fichier par exemple: liste des e-mails, liste de liens, etc.

<?php 

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

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

Cela supprimera tous les doublons et l'enregistrera en tant que fichier de unique.txt

ou

<?php 

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

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

Le stockera dans $uniqueArray

Autres conseils

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

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

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

Ensuite, écrivez le contenu de $arr à TextFile à nouveau

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top