e-Mail-Link aus Textfeld lesen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • e-Mail-Link aus Textfeld lesen

    Hallo,

    ich habe hier einen Kalender, wo ich Text eingeben kann (wow).
    Wenn ich einen http.//... eingebe und mir dann die PHP-Datei ausgeben lasse, dann erkennt er automatisch, dass es einen Link gibt. Das gleiche möchte ich gerne machen, falls eine e-Mail Adresse eingegeben wurde. Wie kann ich den http-Link ändern, so das er in einem neuen Fenster und nicht im gleichen aufgeht ?

    // Look for URLs in the given text, and make them into links.
    // params:
    // $text - input text
    function activate_urls ( $text ) {
    $str = eregi_replace ( "(http://[^[:space:]$]+)",
    "<A HREF=\"\\1\">\\1</A>", $text );
    return $str;
    }



    die Ausgabe sieht so aus:

    <TABLE BORDER=0>
    <TR><TD VALIGN="top"><B><?php etranslate("Description")?>:</B></TD>
    <TD><?php echo nl2br ( activate_urls ( htmlspecialchars ( $description ) ) ); ?>
    </TD></TR></TABLE>


    Danke !
    Nobodys perfect !

  • #2
    Re: e-Mail-Link aus Textfeld lesen

    Original geschrieben von Dani
    // Look for URLs in the given text, and make them into links.
    // params:
    // $text - input text
    function activate_urls ( $text ) {
    $str = eregi_replace ( "(http://[^[:space:]$]+)",
    "<A HREF=\"\\1\" target=\"_blank\">\\1</A>", $text );
    return $str;
    }
    *winks*
    Gilbert
    ------------------------------------------------
    Hilfe für eine Vielzahl von Problemen!!!
    http://www.1st-rootserver.de/

    Kommentar


    • #3
      @ Wotan

      Danke für die schnelle Antwort zu "http:..." und wie sieht's denn mit der e-Mail aus ?
      Nobodys perfect !

      Kommentar


      • #4
        Bitte für die Hilfe

        Habe hier noch das gefunden.
        Gefunden im PHP-Handbuch
        Code:
        ereg_replace ('[_a-zA-z0-9\-]+(\.[_a-zA-z0-9\-]+)*\@' .
        '[_a-zA-z0-9\-]+(\.[a-zA-z]{1,3})+', '<a href=" mailto: \\0">\\0</a>', $txt);
        Die Leerzeichen vor und hinter mailto müssen noch entfernt werden.
        Das müsste dein Problem beheben.
        *winks*
        Gilbert
        ------------------------------------------------
        Hilfe für eine Vielzahl von Problemen!!!
        http://www.1st-rootserver.de/

        Kommentar


        • #5
          @ Wotan

          es funktioniert prima nur in der Ausgabe habe ich es doppelt drin,
          weil jede Funktion ja am Schluß den $text ausgibt. Kann man denn da ne gesamte Abfrage machen ?

          gsdfgsdf
          http://www.dani.de
          info@dani.de gsdfgsdf
          http://www.dani.de
          info@dani.de

          das steht in der funktion.php drin:

          // Look for URLs in the given text, and make them into links.
          // params:
          // $text - input text
          function activate_urls ( $text ) {
          $str = eregi_replace ( "(http://[^[:space:]$]+)",
          "<A HREF=\"\\1\" target=\"_blank\"><u><b>\\1</b></u></A>", $text);
          return $str;
          }

          // e-Mail
          function activate_mail ( $text ) {
          $str = ereg_replace ('[_a-zA-z0-9\-]+(\.[_a-zA-z0-9\-]+)*\@' .
          '[_a-zA-z0-9\-]+(\.[a-zA-z]{1,3})+', '<a href=" mailto: \\0"><u><b>\\0</b></u></a>', $text);
          return $str;
          }


          und das jetzt in der view.php

          <TABLE BORDER=0>
          <TR><TD VALIGN="top"><B><?php etranslate("Description")?>:</B></TD>
          <TD><?php echo nl2br ( activate_urls ( htmlspecialchars ( $description ) ) ); ?>
          <?php echo nl2br ( activate_mail ( htmlspecialchars ( $description ) ) ); ?>
          </TD></TR></TABLE>
          Nobodys perfect !

          Kommentar


          • #6
            Original geschrieben von Dani
            das steht in der funktion.php drin:

            // Look for URLs in the given text, and make them into links.
            // params:
            // $text - input text
            function activate_urls ( $text ) {
            $str = eregi_replace ( "(http://[^[:space:]$]+)",
            "<A HREF=\"\\1\" target=\"_blank\"><u><b>\\1</b></u></A>", $text);
            return $str;
            // e-Mail
            $str = ereg_replace ('[_a-zA-z0-9\-]+(\.[_a-zA-z0-9\-]+)*\@' .
            '[_a-zA-z0-9\-]+(\.[a-zA-z]{1,3})+', '<a href=" mailto: \\0"><u><b>\\0</b></u></a>', $text);
            return $str;
            }


            und das jetzt in der view.php

            <TABLE BORDER=0>
            <TR><TD VALIGN="top"><B><?php etranslate("Description")?>:</B></TD>
            <TD><?php echo nl2br ( activate_urls ( htmlspecialchars ( $description ) ) ); ?>
            </TD></TR></TABLE>
            Versuchs mal so! nicht getestet!!!
            *winks*
            Gilbert
            ------------------------------------------------
            Hilfe für eine Vielzahl von Problemen!!!
            http://www.1st-rootserver.de/

            Kommentar


            • #7
              jetzt zeigt er mir den Text wieder normal an, und der Link funktioniert auch, nur der e-Mail Link nicht mehr, der wird nur als Text angezeigt.
              Nobodys perfect !

              Kommentar


              • #8
                hast du die Leerzeichen vor und nach dem mailto raus genommen?
                *winks*
                Gilbert
                ------------------------------------------------
                Hilfe für eine Vielzahl von Problemen!!!
                http://www.1st-rootserver.de/

                Kommentar


                • #9
                  Ja, nützt aber nichts. Wahrscheinlich muß man das alles in eine Abfrage machen, wenn eins von beiden oder dann, wenn beide "true" sind. Das Problem wäre ja nicht, wenn der Link und/oder die e-Mail zum Schluß und nur der normale Text am Anfang steht. Nur wenn halt beide da sind, dann sollten auch beide funktionieren.
                  Nobodys perfect !

                  Kommentar


                  • #10
                    Meine Funktion-Datei macht das in einem Rutsch egal wieviele HTTP und Mail-Adressen drin stehen.

                    function activate_urls ( $text ) {
                    $str = eregi_replace ( "(http://[^[:space:]$]+)",
                    "<A HREF=\"\\1\" target=\"_blank\"><u><b>\\1</b></u></A>", $text);
                    return $str;
                    // e-Mail
                    $str = ereg_replace ("[_a-zA-z0-9\-]+(\.[_a-zA-z0-9\-]+)*\@" .
                    "[_a-zA-z0-9\-]+(\.[a-zA-z]{1,3})+", "<a href=\"mailto:\\0\"><u><b>\\0</b></u></a>", $text);
                    return $str;
                    }

                    Versuch mal so! Nicht getestet!!!
                    *winks*
                    Gilbert
                    ------------------------------------------------
                    Hilfe für eine Vielzahl von Problemen!!!
                    http://www.1st-rootserver.de/

                    Kommentar


                    • #11
                      So siehts aus, d.h. zuerst bringt er mir die Url als Link und zeigt mir die Mail nur als Test an und danach umgekehrt. Wird dann wohl an der Ausgabe liegen.

                      gsdfgsdf
                      http://www.yls.de
                      info@yls.de gsdfgsdf
                      http://www.yls.de
                      info@yls.de
                      Nobodys perfect !

                      Kommentar


                      • #12
                        Original geschrieben von Dani
                        und das jetzt in der view.php

                        <TABLE BORDER=0>
                        <TR><TD VALIGN="top"><B><?php etranslate("Description")?>:</B></TD>
                        <TD><?php echo nl2br ( activate_urls ( $description ) ); ?>
                        </TD></TR></TABLE> [/B]
                        Versuchs mal so.
                        *winks*
                        Gilbert
                        ------------------------------------------------
                        Hilfe für eine Vielzahl von Problemen!!!
                        http://www.1st-rootserver.de/

                        Kommentar


                        • #13
                          nö, nö, nö !

                          gsdfgsdf
                          http://www.dani.de
                          info@dani.de (kein Link drauf)

                          ei verpibscht noch'e mal, das Ding will einfach net !
                          Nobodys perfect !

                          Kommentar


                          • #14
                            <TABLE BORDER=0>
                            <TR><TD VALIGN="top"><B><?php etranslate("Description")?>:</B></TD>
                            <TD><?php echo nl2br (activate_urls($description)); ?>
                            </TD></TR></TABLE>

                            Du schreibst hier was von $description sollte das nicht $str heissen?

                            Jetzt mal anders.

                            Mein Aufruf erfolgt so:
                            $text = ubb($text);
                            echo nl2br($text);

                            In der Funktions-Datei heisst die Funktion:
                            function ubb($msg)
                            {
                            ......
                            return $msg;
                            }

                            Und das läuft bei mir.
                            Zuletzt geändert von Wotan; 25.07.2002, 11:53.
                            *winks*
                            Gilbert
                            ------------------------------------------------
                            Hilfe für eine Vielzahl von Problemen!!!
                            http://www.1st-rootserver.de/

                            Kommentar


                            • #15
                              Nein, das stimmt schon so, wie es da stehen tut. Ist ja einfach nur der Text, der als Description eingegeben worden ist. Ds ist ja schon ein fertiges Script, nur fehlt mir da diese 2 Dinge dran.
                              Wie schon erwähnt, eines von beiden geht als Link, aber beide funktionieren einfach nicht.
                              Nobodys perfect !

                              Kommentar

                              Lädt...
                              X