Newsgroup: it.comp.www.php
Titolo: Ricerca email

Ho scaricato da internet uno script che prometteva di esaminare una 
pagina alla ricerca di un indirizzo email 
 
 ho inserito un link di una pagina dove è presente un indirizzo email 
non linkato ma sembra non prelevarlo mi sapete dire il motivo?
 
 Allego lo script
 
<?php
 
$sito = "
http://www.nomesito.com
";
 
function leggi_codice($sito) {
    $lines = file($sito);
    $string='';
    foreach ($lines as $line_num => $line) {
    $string  .= $line;
    }
    preg_match_all("/[\._a-zA-Z0-9-]+@[\._a-zA-Z0-9-]+/i", $string, 
$matches);
    return $matches[0];
}
 
function estrai_mail($var) {
    $emails = array_unique($var);
    sort($emails); 
    if(empty($emails)) echo "nessuna email presente nel codice di $_POST
[url]";
    else {
    foreach($emails as $email) {
    echo trim($email).'
';    
    }
    }
}
 
?>
 

non linkato ma sembra non prelevarlo mi sapete dire il motivo?
 
No. Ma posso fornirti alcuni motivi possibili, senza garanzie che l'elenco contenga
il motivo giusto.
 
1. Lo script ha un comportamento che alcuni paranoici diremmo tipico da spam-bot, per
   cui nella pagina che preleva l'indirizzo email non c'è (e meno male; che di norma,
   i paranoici psicopatici ci mettiamo cose inimmaginabili, al posto dell'email).
 
2. La pagina contiene una difesa anti-spam-bot, consistente nel costruire l'indirizzo
   mediante CSS:
     lserni<span class="hidden">suuuuuuuucaaaaa</span>@
gmail.com
 
     <span class="hidden"><!-- harvestable! Happy? -->
bar...@whitehouse.gov
</span>
 
   o anche peggio:
 
    .email:before { content: "l" }
    .email:after  { content: "m" }
 
     <span class="email">
se...@gmail.co
</span>
 
3. La pagina contiene una difesa anti-spam-bot, consistente nel costruire l'indirizzo
   mediante Javascript.
 
4. La pagina contiene una difesa anti-spam-bot, consistente nel costruire l'indirizzo
   usando una PNG. Con sfondo trasparente. E la firma è nell'alpha channel. Ma mixato
   con il colore di sfondo :-)
 
5. La mail usata è scritta codificata in esadecimale o simili:
       lserni&#60;gmail&#2e;com
 
   (vado a memoria, i codici potrebbero essere sbagliati)
 
6. La mail è scritta separando i pezzi con vari tag HTML.
 
7. La mail fa un uso armato di UTF-8.
 
8. Più d'una delle precedenti.
 
Una cosa che NON è successa:
 
9. Nella pagina c'è una mail vera, protetta come sopra, e una mail falsa, visivamente
   simile, là dove un bot la vede ma un essere umano no:
 
      Scrivete con fiducia a <puppa>lserni</puppa>@<puppa>
gmail.com
</puppa>
      <!-- 
Ise...@gmail.com
 -->
 
Leonardo
-- 
 
A terrible beauty is born.
                                     - W. B. Yeats, Easter 1916

    simile, lÃ  dove un bot la vede ma un essere umano no:


Ã¨ valida nessuna in quanto la pagina Ã¨ stata creata da me
 
Beh, se tu avessi scritto "un link di una MIA pagina" avrei avuto più probabilità
di immaginarmelo ;-)
 
Vedi, a volte, la differenza che fanno quattro caratteri? :-)


 ha scritto:

 Ti allego di nuovo lo script con la pagina reale dove è presente un 
indirizzo mail non linkato che non viene prelevato dallo script
 
 
 
<?php
 
$sito = "
http://www.servizidpr.com/opzionibinarie/contatti.htm
";


     return $matches[0];
 
Fai un print_r di $matches qui per vedere cosa ti torna nell'array.
 
Io ho sempre avuto problemi a capire come costruisca l'array dei 
risultati, quindi uso i named matches ogni volta che posso.
 
Bye.
 

 pagina alla ricerca di un indirizzo email 
 
Leggendo anche cio` che hai scritto i tuoi thread precedenti direi che
sei proprio uno di quei fottuti spammer pezzi di merda.
 

 sei proprio uno di quei fottuti spammer pezzi di merda.
 
o per meglio dire, vorresti diventarlo ma sei cosi` deficiente che manco
ci riesci per cui rimani solo un fottuto pezzo di merda!
 
 

 Ti allego di nuovo lo script
 
OK. Allora, questa versione dello script l'ho appena verificata funzionare dal mio server.
 
Tu dici che dal tuo sito il download di siti terzi non dia alcun problema; io lo prendo per buono.
 
<?php
     define('EMAIL_REGEX', '#[a-z0-9\\.!\\$%&*+/=\\?^_\\{\\|\\}~-]+@[a-z0-9-]+(?:\\.[a-z0-9-]+)*#i');
 
    function leggi_codice($sito) {
        $text   = file_get_contents($sito);
        if (empty($text)) {
            // Questo vuol dire che il server PHP non è in grado
            // di connettersi e scaricare il sito bersaglio.
            return array('impos...@leggere.il.sito');
        }
        $matches = null;
        preg_match_all(EMAIL_REGEX, $text, $matches);
        return $matches[0];
    }
 
    function estrai_mail($var) {
        $emails = array_unique(array_map('trim', $var));
        sort($emails);
        return $emails;
    }
 
Questo è il test che, come dicevo, funziona:
 
<?php
    include 'test-read-antcud.php';
 
    // Un uso possibile
    // va definito $sito
    // $sito = 'http://....'
    // var_dump(estrai_mail(leggi_codice($sito)));
 
    $elenco_mail = estrai_mail(leggi_codice($sito));
 
Leonardo
 
P.S. ma, per l'amor di Dio, valuta attentamente l'ipotesi di rivolgerti a uno sviluppatore Web.
     Quel sito è un mucchio di pezzi di codice che funzionano per scommessa, e se per disgrazia
     lo visita il piccolo Bobby Tables, lo asfalta e ne fa un parcheggio per camper :-(


  il piccolo Bobby Tables
 
<3

 ha scritto:
 

Seguendo le tue istruzioni  mi appare il seguente messaggio:
 
array(1) { [0]=> string(25) "
servi...@servizidpr.com
" } Array
 
Non c'è un modo per stampare solo l'email ?
 
<?php
 
 include 'test-read-antcud.php';
 
    // Un uso possibile
    // va definito $sito
    // $sito = 'http://....'
    // var_dump(estrai_mail(leggi_codice($sito)));
$sito = "
http://www.servizidpr.com/opzionibinarie/contatti.htm
";
var_dump(estrai_mail(leggi_codice($sito)));    
 
$elenco_mail = estrai_mail(leggi_codice($sito));
 
print $elenco_mail;
 
?>
 

 Non c'è un modo per stampare solo l'email ?
 
Credo che questo sia il momento giusto per un RTFM.
 
Se non sai nemmeno tirare fuori un elemento da un array, penso sia 
inutile continuare ad aiutarti, perchè vorrai sempre la pappa pronta, e 
continuerai a costruire il tuo frankenstein fatto di pezzi 
copia-incollati in giro.
 
Studia PHP. Impara come funziona, poi torna con domande più interessanti.
 
Bye.
 
 

Non c'è un modo per stampare solo l'email ?
 
Certo, ce ne sono diversi.
 
1. Pagare uno sviluppatore - come ti ho già suggerito. Non solo per
   le cose nuove ma per risistemare quelle vecchie, che credimi, ne
   hanno un bisogno grosso.
 
2. Studiarsi un po' di PHP, che qui siamo all'ABC perdavvero. Ti ci
   vuole un po' di tempo ma per il resto è gratis. Vedo che EasyPHP
   l'hai installato: credo che dentro ci siano i link al manuale.
 
3. Continuare a chiedere non solo la pappa scodellata ma perfino di
   essere imboccati, e che ti massaggino la gola per non fare tu la
   fatica di deglutire, e magari offendersi se non arriva. Ti parrà
   un commento un po' aggressivo, ma considera che questa storia va
   avanti da sette anni, di pappa ti se ne è data direi abbastanza,
   e maledetta quella volta che ti fosse scappato un "grazie" :-|
 
Leonardo try to see it my way


M_M <sp...@the.hell> ha scritto:

Per quale motivo queste offese gratuite considerando che 
 
tu non sai chi sono io, 
 
 io non ti ho mai offeso
 
 non sai per quale motivo mi serve lo script
 
non riesci ad avere un rapporto civile con le persone così come hanno fatto 
gli altri che saluto e ringrazio per i consigli che mi hanno dato