Wortfilter

Hallo Nord-Süd-Richtung,

sag mal wie genial bist Du denn? Das ist es!!

Vielen vielen Dank.

Jetzt die nächste Frage:
Welches Suchmuster würdest Du für Telefonnummer und Webadressen nehmen?
Dann wäre ich glücklich und könnte weitermachen mit meinem Formular.

Genialer Gruß
Jürgen
 
Hi

also elegent war meins warscheinlich nicht, aber solange es funktioniert :rolleyes: :D

PHP:
$telefonnummer = '/.?(\d{3,4}(\/?|\-?| ?)\d{3,}).?/'; //findet vorwahl-nummer vorwahl/nummer vorwahl nummer
$str = 'Ich lasse meine telefonnummer 040-12301230 hier fuer spam';
preg_match($telefonnummer,$str,$matches);
echo str_replace($matches[1],' TELEFON ',$str);

$str = 'Ich lasse meine webadresse http://www.example(.)de hier fuer spam';
$webaddr = '/.?((http:\/\/)?(www\.|www\(\.\))?\w*(\.|\(\.\))\w{2,3}).?/';
preg_match($webaddr,$str,$matches);
echo str_replace($matches[1],' WEB ',$str);
 
Zuletzt bearbeitet:
Hallo Nord-Süd-Richtung,

genial!!
Aus http://www.meine-seite.de wird WEB ne-seite.de
ftp:// findet er auch nicht. Ist aber egal da die Webadresse ansonsten unkenntlich ist.

Aus +49 6254-23 23 23 8 wird +49 6254-23 23 23 8 | Das kann er nicht finden.

Bei der E-Mailadresse erkennt er kein - und den _ nicht! Ansonsten super!
 
Zuletzt bearbeitet:
Hi

für die Unterstriche in Emailadressen könntest du folgendes machen, ersetze das \w durch [a-zA-Z\-_], für die Telefonnummern musst du einfach die 3 in {3,} durch eine niedrigere Zahl ersetzen
 
Hallo Nord-Süd-Richtung,

Das ist jetzt der getestete Filter. Es werden so um die 95% der unerlaubten Zeichen Wörter und Formatierungen elemeniert.
Die Restlichen 5% werden aber dennoch verstümelt und somit nicht mehr lesbar.
Wenn einer eine einfachere Möglichkeit hat oder sieht lasst es mich bitte wissen.
PHP:
$data_w = strip_tags($data_w);
$data_w = preg_replace("/ +/", " ", $data_w);
$data_w = str_replace( "_", "", $data_w);
$data_w = str_replace( "-", "", $data_w);
$data_w = str_replace( "\\", "", $data_w);
$data_w = preg_replace('#(?<=\d) (?=\d)#', '', $data_w); // Leerzeichen zwischen Zahlen entfernen

$pattern = '/.?([a-zA-Z\-_\.]*@[a-zA-Z\-_\.]*\.[a-zA-Z\-_\.]*).?/';
preg_match_all($pattern,$data_w,$matches); $data_w =  str_replace($matches[1],' eMail ',$data_w);

$pattern_tel = '/.?(\d{2,4}(\/?|\-?| ?)\d{2,}).?/';
preg_match_all($pattern_tel,$data_w,$matches_tel); $data_w =  str_replace($matches_tel[1],' Telefon ',$data_w);

$pattern_www = '/.?((ftp:\/\/)?(http:\/\/)?(www\.|www\(\.\))?\w*(\.|\(\.\))\w{2,3}).?/';
preg_match($pattern_www,$data_w,$matches_www); $data_w =  str_replace($matches_www[1],' WWW ',$data_w);
Danke und großer Respekt an Dich.
Gruß
Jürgen
 
Zuletzt bearbeitet:
Zurück