Andavos: Mail Links Anklickbar machen

Hallo,
ich habe ein Gästebuch mit PHP geschrieben.
Dort werden die Texte in eine MySQL Datenbank gespeichert.

Wenn der User jetzt folgendes Schreibt.

Hallo,
mail mal bitte an abc@xyz.de

Dann ist die mailadresse ja kein Mail Link, aber wie bekomme ich einen.

ich weiß zwar das man mit str_replace etwas ersetzten kann, aber ich kann ja kein mailto: davor setzten.

Ich hab schon im PHPSelf nachgeguckt, aber noch nichts wirkliches gefunden, immer nur "ersetzt bestimmte Zeichen..."

Aber ich möchte ja nur ein Mailto: davor setzten.

Denn dann gehts, denn ich ersetze bestimmte Begriffe hiermit:

function replace_uri($str)
{
$pattern = '#(^|[^"=]{1})(http://|ftp://|mailto:)([^\s<>]+)([\s\n<>]|$)#sm';
return preg_replace($pattern,"\1<a href="\2\3">\3</a>\4",$str);
};

Also wenn der User mailto:abc@abc.de eingibt geht das, aber wenn er nur abc@abc.de eingibt geht das nicht.

MFG
Andavos

--
http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
  1. hi

    wie wärs wenn du nach einer zeichenkombination suchst. ein e-mailadresse baut sich ja im prinzip so auf

    string@string.tld

    also, erstmal nach dem @ suchen, dann schauen ob hinter dem zweiten string ein punkt existiert und eine tld.
    in den meisten fällen dürfte die e-mailadresse zwischen leerzeichen stehen. eine liste mit tlds gibt es auch.
    also nimmst du dann alles zwischen den beiden leerzeichen und setzt es als e-mailadresse um.

    ist zwar recht umständlich und auch nicht der sicherste weg, aber es könnte funktionieren...zumindest teilweise.

    so long
    ole
    (8-)>

    1. Hallo,
      jo, so weit war ich auch schon, aber welche Befehle soll ich dafür benutzen??

      mit str_replace geht das meines Wissens nicht

      MFG
      Andavos

      --
      http://www.rpgcommunity.de/clanwissen/index.php Webdesign, PHP, Clan-Aufbau und mehr
      1. hi,

        jo, so weit war ich auch schon, aber welche Befehle soll ich dafür benutzen??

        beschäftige dich mit preg_replace() und regulären ausdrücken.

        gruss,
        wahsaga

  2. Hallo,

    Hallo,
    mail mal bitte an abc@xyz.de

    Dann ist die mailadresse ja kein Mail Link, aber wie bekomme ich einen.

    Schau dir bitte mal http://aktuell.de.selfhtml.org/tippstricks/programmiertechnik/email/index.html an, dort wird beschrieben, wei man mit einer Regex Mailadressen verifizeiren kann. Du setzt vor und hinter diese Regex noch eine Suche nach einer Wortgrenze oder Anfang/Ende des Strings und schon kannst du sie zum finden/ersetzen verwenden.

    Beachten könntest du noch die Situation, dass eine Mailadresse vielleicht in <...>, (...) oder "..." eingeschlossen sein könnte, oder nach der TLD noch ein abschließender Punkt steht. Dann sollte das ganze recht zuverlässig funktionieren.

    Viele Grüße,

    Stefan

    --
    Lass dir das Tanzen NICHT verbieten
    http://tanzverbot.de