Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Trovare un url o una mail in una stringa
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      tuonorosso Super User • 10 set 2005, 10:18 ultima modifica di

      Trovare un url o una mail in una stringa

      Ciao,
      qualcuno di voi sa come fare per ottenere questo:

      www.google.com

      Ossia, data una stringa trovare che sia un link (con o senza http://) o una mail di modo da generare un codice html del tipo

      <a href="">
      

      o

      mailto:ecc ecc
      

      Grasssssie

      PS: poi facciamo una pillola per questo 😄

      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
        Caricamento altri post
        Rispondi
        • Topic risposta
        Effettua l'accesso per rispondere
        • Da Vecchi a Nuovi
        • Da Nuovi a Vecchi
        • Più Voti
         

      • lowlevel
        lowlevel Super User • 10 set 2005, 10:32 ultima modifica di

        Per gli URL prova così:

        
        $regex = "/&#40;&#40;&#91;a-z0-9&#93;&#91;-a-z0-9&#93;+\.&#41;+&#91;a-z&#93;&#123;2,4&#125;&#41;/is";
        $replace = "<a href=\"http://$1\">$1</a>";
        $text = "Testo www.google.com di prova.";
        $text = preg_replace &#40;$regex, $replace, $text&#41;;
        
        

        Per le e-mail, dipende da quanto vuoi che il riconoscimento sia preciso.

        Ho visto regex per il riconoscimento degli indirizzi e-mail che arrivano a diverse centinaia di caratteri.

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          tuonorosso Super User • 10 set 2005, 11:34 ultima modifica di

          Low, hai un link da consigliarmi per le regex?

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • T
            tuonorosso Super User • 10 set 2005, 11:49 ultima modifica di

            ho applicato il tuo suggerimento

            Ecco il risultato: http://www.autoelaborate.com/recensione145.html

            Non è male...anche se mi risolve come link il contenuto dopo la @ e anche parole del tipo

            Che bella questa macchina.Mi piace moltissimo.

            In questo caso macchina.Mi diventa un link 😄

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • lowlevel
              lowlevel Super User • 10 set 2005, 11:52 ultima modifica di

              Se ti riferisci ad una regex per le e-mail, posso anche scrivertela io se non cerchi nulla di perfetto.

              Altrimenti l'unica altra fonte che conosco è "Mastering Regular Expressions", che è il libro considerato la "bibbia" delle regex. Non so se è stato tradotto in italiano. In questo libro c'è un esempio di una regex che descrive gli indirizzi e-mail, anche quelli più complessi. E' lunghissima.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • T
                tuonorosso Super User • 10 set 2005, 12:00 ultima modifica di

                ho trovato questo:

                You can do this by using the following code:
                
                <?php
                function hyperlink&#40;&$text&#41;
                &#123;
                   // match protocol&#58;//address/path/
                   $text = ereg_replace&#40;"&#91;a-zA-Z&#93;+&#58;//&#40;&#91;.&#93;?&#91;a-zA-Z0-9_/-&#93;&#41;*", "<a href=\"\\0\">\\0</a>", $text&#41;;
                
                   // match www.something
                   $text = ereg_replace&#40;"&#40;^| &#41;&#40;www&#40;&#91;.&#93;?&#91;a-zA-Z0-9_/-&#93;&#41;*&#41;", "\\1<a href=\"http&#58;//\\2\">\\2</a>", $text&#41;;
                &#125;
                ?>
                
                You can use this function like this&#58;
                <?php
                $line = "Check the links&#58; www.yahoo.com http&#58;//www.php.net";
                hyperlink&#40;$line&#41;;
                // Now, all text that looks like a link becomes a link
                ?> 
                

                Ora è corretto 😉

                Grazie mille Low, appena trovo per la mail lo posto.

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • lowlevel
                  lowlevel Super User • 10 set 2005, 12:00 ultima modifica di

                  @Tuonorosso said:

                  Non è male...anche se mi risolve come link il contenuto dopo la @ e anche parole del tipo

                  Che bella questa macchina.Mi piace moltissimo.

                  In questo caso macchina.Mi diventa un link 😄

                  Perché è generica al massimo. Possiamo limitarla agli indirizzi che iniziano con "www." e separati da spazi:

                  
                  $regex = "'\s&#40;http://&#41;?&#40;www\.&#40;&#91;a-z0-9&#93;&#91;-a-z0-9&#93;+\.&#41;+&#91;a-z&#93;&#123;2,4&#125;&#41;\s'is";
                  $replace = "\s<a href=\"http&#58;//$2\">$2</a>\s"; 
                  
                  

                  Può diventare come vuoi, basta che si stabilisce con precisione cosa deve diventare un link e cosa non deve.

                  Se me lo dici te ne scrivo una precisa, e magari la provo pure, visto che sto programmando alla cieca. 😄

                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • T
                    tuonorosso Super User • 10 set 2005, 12:01 ultima modifica di

                    @LowLevel said:

                    Se ti riferisci ad una regex per le e-mail, posso anche scrivertela io se non cerchi nulla di perfetto.

                    Altrimenti l'unica altra fonte che conosco è "Mastering Regular Expressions", che è il libro considerato la "bibbia" delle regex. Non so se è stato tradotto in italiano. In questo libro c'è un esempio di una regex che descrive gli indirizzi e-mail, anche quelli più complessi. E' lunghissima.

                    No no, figurati nn star li a sbatterti, ti chiedevo un link che spiegasse la sintassi delle regex in modo abbastanza semplice quanto completo.

                    Grazie ancora

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      tuonorosso Super User • 10 set 2005, 12:03 ultima modifica di

                      @LowLevel said:

                      @Tuonorosso said:

                      Non è male...anche se mi risolve come link il contenuto dopo la @ e anche parole del tipo

                      Che bella questa macchina.Mi piace moltissimo.

                      In questo caso macchina.Mi diventa un link 😄

                      Perché è generica al massimo. Possiamo limitarla agli indirizzi che iniziano con "www." e separati da spazi:

                      
                      $regex = "'\s&#40;http://&#41;?&#40;www\.&#40;&#91;a-z0-9&#93;&#91;-a-z0-9&#93;+\.&#41;+&#91;a-z&#93;&#123;2,4&#125;&#41;\s'is";
                      $replace = "\s<a href=\"http&#58;//$2\">$2</a>\s"; 
                      
                      

                      Può diventare come vuoi, basta che si stabilisce con precisione cosa deve diventare un link e cosa non deve.

                      Se me lo dici te ne scrivo una precisa, e magari la provo pure, visto che sto programmando alla cieca. 😄

                      No Low, non ti preoccupare, al massimo sai cosa potresti fare? 😄
                      Spiegare a grandi linee la sintassi, faresti cosa gradita a molti...o almeno a me 😄

                      Grazie ancora

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • T
                        tuonorosso Super User • 10 set 2005, 12:12 ultima modifica di

                        Per le email ho trovato questa:

                        ereg_replace &#40;'&#91;_a-zA-z0-9\-&#93;+&#40;\.&#91;_a-zA-z0-9\-&#93;+&#41;*\@' . '&#91;_a-zA-z0-9\-&#93;+&#40;\.&#91;a-zA-z&#93;&#123;1,3&#125;&#41;+', '[url="mailto:\\0"]\\0', $txt&#41;;
                        

                        Sembra funzionare tutto, guardate qui: http://www.autoelaborate.com/recensione145.html

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • lowlevel
                          lowlevel Super User • 10 set 2005, 12:19 ultima modifica di

                          @Tuonorosso said:

                          Spiegare a grandi linee la sintassi, faresti cosa gradita a molti...o almeno a me 😄

                          Ok, scriverò una pillola.

                          Sembra funzionare tutto, guardate qui: http://www.autoelaborate.com/recensione145.html

                          Dovresti sostituire {1,3} con {1,4}, altrimenti non accetterà i nomi di dominio con suffissi più lunghi di 3 caratteri (ad esempio .info).

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • T
                            tuonorosso Super User • 10 set 2005, 12:33 ultima modifica di

                            Fatto, grazie per il suggerimento, riporto il codice poi apro un post dove riassumo tutto in attesa della tua preziona pillola 😄

                            
                            ereg_replace &#40;'&#91;_a-zA-z0-9\-&#93;+&#40;\.&#91;_a-zA-z0-9\-&#93;+&#41;*\@' . '&#91;_a-zA-z0-9\-&#93;+&#40;\.&#91;a-zA-z&#93;&#123;1,4&#125;&#41;+', '[url="mailto:\\0"]\\0', $txt&#41;; 
                            
                            
                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • R
                              riky78 User Attivo • 14 set 2005, 14:22 ultima modifica di

                              @LowLevel said:

                              @Tuonorosso said:

                              Spiegare a grandi linee la sintassi, faresti cosa gradita a molti...o almeno a me 😄

                              Ok, scriverò una pillola.

                              Sembra funzionare tutto, guardate qui: http://www.autoelaborate.com/recensione145.html

                              Dovresti sostituire {1,3} con {1,4}, altrimenti non accetterà i nomi di dominio con suffissi più lunghi di 3 caratteri (ad esempio .info).

                              meglio ancora {2,4} visto che minimo è 2 caratteri
                              :ciauz:

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              Caricamento altri post
                              Rispondi
                              • Topic risposta
                              Effettua l'accesso per rispondere
                              • Da Vecchi a Nuovi
                              • Da Nuovi a Vecchi
                              • Più Voti