Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 18
  1. #1

    [Regexp] cercare indirizzi email all'interno di una pagina

    Ciao a a tutti, ho provato con il codice seguente a cercare gli indirizzi email contenuti in una pagina web, senza però riuscirci
    Codice PHP:
    $site file_get_contents('http://www.pagina_web.it/');

    preg_match('/^mailto:[A-Z0-9\._%\+-]+@[A-Z0-9\.-]+\.[A-Z]{2,4}$/'$site$matches);

    for(
    $i 0$i <= count($matches); $i++){
        print (
    $i " - " $matches[$i]);

    Non mi ritorna un bel niente, nonostante nel link che uso (che non è quello dell'esempio) sia presente un'indirizzo email.
    Qualcuno sa aiutarmi?

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    L'ho dovuto fare una volta e ricordo di aver fatto così:

    preg_match("/\"mailto.*)\"/", $site, $matches);
    print_r($matches);

    E funzionava. Non capisco il motivo di tutti questi controlli.

  3. #3
    Originariamente inviato da simo22
    L'ho dovuto fare una volta e ricordo di aver fatto così:

    preg_match("/\"mailto.*)\"/", $site, $matches);
    print_r($matches);

    E funzionava. Non capisco il motivo di tutti questi controlli.
    Nel tuo caso però trova l'indirizzo solo se è espresso come link, ma non se è semplicemente riportato come testo. Sbaglio?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    Si, ho messo il mailto:.
    Se vuoi cercare l'indirizzo che non è in un link allora devi usare molti controlli come i tuoi ed eliminare il mailto: che viene usato solo nei link.

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2010
    Messaggi
    570
    ci diamo al setacciamento e raccolta di indirizzi email, eh eh? :P

  6. #6
    Originariamente inviato da nickcv
    ci diamo al setacciamento e raccolta di indirizzi email, eh eh? :P
    Vuoi non soddisfare la richiesta di un cliente?

  7. #7
    Originariamente inviato da simo22
    Si, ho messo il mailto:.
    Se vuoi cercare l'indirizzo che non è in un link allora devi usare molti controlli come i tuoi ed eliminare il mailto: che viene usato solo nei link.
    Eh lo so, per quello la mia regexp è più coplicata della tua.
    Il problema è che così com'è non mi tira fuori nulla

  8. #8
    Ho provato anche con questo pattern

    $pattern = '/^[\w\.+-]+@[\w-]+\.[A-Za-z]{2,4}$/';

    ma niente da fare, non trova nulla
    Qualcuno ha idee?

  9. #9
    Utente di HTML.it L'avatar di brodik
    Registrato dal
    Jan 2009
    Messaggi
    765
    codice:
    preg_match_all("#([\w-\.]+)@((?:[\w]+\.)+)([a-zA-Z]{2,4})#", $site, $matches);
    eXvision

  10. #10
    Utente di HTML.it
    Registrato dal
    Jul 2010
    Messaggi
    719
    $email = "indirizzoemail.mio@dominio.asdf";
    preg_match('/^[\w\.+-]+@[\w-]+\.[A-Za-z]{2,4}$/', $email, $matches);
    print_r($matches);

    Questa funziona.
    Il problema è che ti riconosce solo la singola serie. Per funzionare devi usare:

    preg_match('/[\w\.+-]+@[\w-]+\.[A-Za-z]{2,4}/', $site, $matches);

    In questo modo funziona correttamente.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.