Peppe's website 2.0


ordiniamo gli indirizzi email delle catene di sant’antonio per uso spam ;)

martedì 29 settembre 2009 - 16:00 di Peppe

Beh, ridicolo scrivere apertamente di essere spammoso, infatti non lo sono. Cercavo un modo rapido per creare un file csv con gli indirizzi email trovati in un blocco di testo informe e ho scritto questo pezzo di codice.

Leggere i commenti per capire come funziona.
  1. <?php
  2. header("Content-Type: text/plain");
  3. //il file manda output in text/plain, non ha senso usare html…
  4. $origine=file_get_contents("email.txt");
  5. //email.txt è il file, nella stessa directory dello script, che
  6. //contiene la massa informe di testo da cui estrarre gli indirizzi.
  7. $regexp="/[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}/i";
  8. //l'espressione regolare di un indirizzo email…
  9. $end="";
  10. preg_match_all($regexp, $origine, $indirizzi);
  11. //troviamo gli indirizzi.
  12.  
  13. $unique=array_unique($indirizzi[0]);
  14. //eliminiamo i doppioni
  15. sort($unique);
  16.  
  17. echo count($unique)."\n";
  18. //stampiamo il numero di indirizzi trovati…
  19.  
  20. while(list(, $indirizzo)=each($unique)){
  21.  $end .= strtolower($indirizzo) . "\n";
  22.  }; //la variabile $end contiene tutti gli indirizzi, uno per riga.
  23.  
  24.  if(file_put_contents("contatti.csv", $end)) {
  25.   echo "OK, done. look at \"contatti.csv\""; };
  26. //scrive $end nel file contatti.csv, che troverai
  27. //nella stessa dir dello script
  28. ?>

Dopo avere eseguito questo script (su sistemi unix basterà scrivere “php nomefile” in terminale, dopo aver commentato la prima riga “header…”) troverai nella sua directory il file contatti.csv che contiene tutti gli indirizzi uno per riga.

Aggiungo: ovviamente la directory deve essere scrivibile dall’utente che esegue lo script da terminale, o da tutti se viene usato via apache.