preg_match und so weiter

hi ^^

könnte mir mal jemand idiotensicher erklären wie diese funktionen funktionieren?
ich check das einfach ned :frowning:

preg_match(’/^[\w.-]+@([\w.-]+.)+[a-z]{2,6}$/is’, $email);

ich seh da nur klammern und buchstaben die keinen sinn ergeben…

was müsste ich beispielsweise tun damit bei einer mailadresse neben

[email protected]

auch

bestcoderever[at]underground.net

akzeptiert

okey hat sich erledigt. bin selbst drauf gekommen:

preg_match(’/^[\w.-]+@|[at]+[a-z]{2,6}$/is’, $email)

Erklärung
habe das @ durch [@|[at]] ersetzt, dh an der stelle des @ nimmt er das @ Oder ( | ) das unescaped [at] also [at]

Hi,

ein schönes Tutorial: http://www.regenechsen.de/phpwcms/index.php?regex

CU Fr@nkie

The Truth Is Out There… ;o)

Hier hast du einen Fehler, der sich aus der exkigen Klammer ergibt. Ich möchte ungerne auf die genaue Verwendung von RegEx eingehen, da es genügend Tutorials gibt, wie sie mein Vorredner auch schon verlinkt hat. Aber um das zu erreichen, was du möchtest muss der Code so aussehen:

preg_match(’/^[\w.-]+(?:[@]|[at])([\w.-]+[.|[dot]])+[a-z]{2,6}$/is’,$email)

Der Unterschied: Deine Lösung erkennt auch bla[bla.de, bla|bla.de, bla][bla.de, etc. Die genaue Erklärung ergibt sich aus dem Studium eines entsprechenden Tutorials zur Bedeutung von eckigen Klammern.

logo, aber das problem ist, ich muss es so machen, da ich keine direkten emails auf der seite posten will, wegen spam-bots!

Das ist ja auch garkein Problem. Dennoch ist es unsinnig auch falsche Angaben als „valide“ zu markieren, nur weil der RegEx falsch ist.

Im Übrigen würde ich allerdings nicht zu viel auf diese Art der EMail-Maskierung geben, denn ebenso wie du können auch SpamBots RegEx nutzen um derartige EMail-Adressen zu finden. Allerdings ist es schon unwahrscheinlicher, als auf die herkämmliche Art und Weise.