Nicht erlaubte Wörter in einem Text löschen

 

Unbeliebt sind böse Nachrichten die sich ab und zu mal im Gästebuch oder in Foren widerfinden. Eine einfache Funktion verhindert dieses. Ich habe für mein Script die Liste der „Bad Words“ in eine Tabelle auf dem mySQL Server geschrieben.

Erzeugen der Datenbanktabelle

CREATE TABLE boeseworte
(
  id tinyint(3) unsigned NOT NULL auto_increment,
  wort varchar(100) NOT NULL,
  PRIMARY KEY (id),
  KEY id (id)
);

Einfügen eines Grundsatzes an bösen Worten

INSERT INTO boeseworte VALUES ( '1', 'Arsch');
INSERT INTO boeseworte VALUES ( '2', 'Idiot');
INSERT INTO boeseworte VALUES ( '3', 'Looser');
INSERT INTO boeseworte VALUES ( '4', 'Lamer');
INSERT INTO boeseworte VALUES ( '5', 'Wixer');
INSERT INTO boeseworte VALUES ( '6', 'ass');
INSERT INTO boeseworte VALUES ( '7', 'idiot');
INSERT INTO boeseworte VALUES ( '8', 'spinner');
INSERT INTO boeseworte VALUES ( '9', 'fettgesicht');
INSERT INTO boeseworte VALUES ( '10', 'Hitler');
INSERT INTO boeseworte VALUES ( '11', 'trottel');
INSERT INTO boeseworte VALUES ( '12', 'ficken');
INSERT INTO boeseworte VALUES ( '13', 'Sex');
INSERT INTO boeseworte VALUES ( '14', 'Puff');
INSERT INTO boeseworte VALUES ( '15', 'Nutte');
INSERT INTO boeseworte VALUES ( '16', 'Hure');
INSERT INTO boeseworte VALUES ( '17', 'Bitch');
INSERT INTO boeseworte VALUES ( '18', 'fresse');
INSERT INTO boeseworte VALUES ( '19', 'Schwanz');

Zu allererst programmiere ich die Funktion welche ich dann später mit dem zu checkenden Text aufrufe. Ich stelle eine Verbindung zur mySQL-Datenbank her, bei einem Fehler weise ich eine Fehlermeldung der Variable $errorMsg zu um diesen leichter zu finden.

Funktion zur Umwandlung der verbotenen Worte

<?php
function delBad($text)
{
  $errorMsg = FALSE;
  $mysqlHost = "localhost";
  $mysqlUser = "";
  $mysqlPass = "";
  $database = "mysql";

  if (!mysql_connect($mysqlHost,$mysqlUser,$mysqlPass))
  {
    $errorMsg = $errorMsg . " - no db connect -";
  }
  else
  {
    if (!mysql_select_db($database))
    {
      $errorMsg = $errorMsg . " - no db select -";
    }
  }

  $query = mysql_Query("Select * from boeseworte;");
  $anzahlWorte = mysql_num_rows($query);
  while ($result = mysql_fetch_array($query))
  {
    $boesesWort = $result["wort"];
    $text = str_replace($boesesWort,"-deleted-",$text);
  }

  if (!$errorMsg)
  {
    return $text;
  }
  else
  {
    $text = $errorMsg;
    return $text;
  }
}
?>

So wird die Funktion aufgerufen

<?php
  $text = "Du ***** was willst du Idiot hier Wixer";
  $text = delBad($text);
  echo $text;
?>

Über Enrico S.

Programmierer, Webdesigner, Grafiker, Blogger, Screencaster, Arduino- und eMobility Enthusiast.

Kommentare geschlossen.