So entfernen Sie E-Mail-Adressen und links aus einem string in PHP?
Wie Entferne ich alle E-Mail-Adressen und links aus einer Zeichenfolge und ersetzt Sie mit "[entfernt]"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie Entferne ich alle E-Mail-Adressen und links aus einer Zeichenfolge und ersetzt Sie mit "[entfernt]"
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie die Verwendung von preg_replace, es zu tun.
für E-Mails:
für urls:
Ressourcen
PHP-Handbuch Eintrag: http://php.net/manual/en/function.preg-replace.php
Ehre, wem Ehre gebührt: E-Mail regex entnommen preg_match manpage, und die URL-regex entnommen aus: http://www.weberdev.com/get_example-4227.html
Versuchen Sie dies:
Hinweis: Sie können übergeben Sie ein array von mustern und übereinstimmungen in preg_replace anstatt es zweimal.
$pattern = "/[a-zA-Z]*[:\/\/]*[A-Za-z0-9\-_]+\.+[A-Za-z0-9\.\/%&=\?\-_]+/i";
preg_replace('!\s*\.\s*!', '.', 'visit today stackoverflow . com and enjoy.');
Die Antwort, die ich wollte upvote gelöscht wurde. Es verknüpft auf eine Linux Journal Artikel Die Validierung einer E-Mail-Adresse mit PHP, der Richtige Weg, die Punkte heraus, was falsch ist mit fast jedem E-Mail-regex jemand schlägt.
Den Bereich der zulässigen Formen der E-Mail-Adresse ist viel breiter als die meisten Leute denken.
Meine Antwort ist eine variation von Josiah ' s
/[^@\s]*@[^@\s]*\.[^@\s]*/
für E-Mails, welche gut funktioniert aber auch mit jedem puctuation nach der E-Mail-Adresse selbst: demo 1Anpassung der regex wie folgt
/[^@\s]*@[^@\s\.]*\.[^@\s\.,!?]*/
ausschließen.
,
!
und?
: demo 2Es gibt eine Menge von Zeichen, die in der ersten lokalen Teil der E-Mail (siehe Welche Zeichen dürfen in einem E-Mail-Adresse?), so dass diese Linien ersetzen würde alle gültigen E-Mail-Adressen:
Diese deckt die meisten gültigen E-Mail-Adressen, die informiert werden: durch das entfernen wirklich nur alle gültigen E-Mail-Adressen ist etwas komplexer (siehe Wie die Validierung einer E-Mail-Adresse mit einem regulären Ausdruck?)