Marktplatz Downloads Tutorials Forum

Designnation bietet auch:

Tutorial hinzufügen

Beliebte Links Weitere Optionen

Tutorial suchen

Titel

Schlüsselwörter

PHP / MySQL Tutorial: Schimpfwortfilter PHP - Mit Black- und Whitelist



Ranking: +3   Kommentare: 4   |   Bewertung: Keine Berechtigung!  

Hallo,

Das ist mein erstes "Tutorial" in Sachen PHP! Erstmal zu mir: Ich heiße Maximilian Schmidt, bin 14 Jahre alt und programmiere seit 2 Jahren PHP. Ich schreibe gerade an eienr Boardsoftware(alleine) zu der viele Klassen gehört(Template, BBCode, MySql, Language,...). Und eine davon möchte ich heute vorstellen: Meine Filter - auch SChimpfwortfilter - Klasse. Ich habe das letzte Tut zu diesem Thema hier gelesen und habe daraufhin diese Klasse für mein Board programmiert. Da die von hier kein richtiger Filter ist, dachte ich, vielleicht nützt sie ja jemandem etwas :)
Diese Klase hat eine Black und eine Whitelist. Ihr könnt Wörter wie z.B. Sex zensieren lassen, aber Wörter wie Rechtsexperte übergehen.
Bei Fragen oder Bugs bitte melden =)

Hier die Klasse:

Code:


<?php

    
/**

     * @author Maximilian Schmidt

     * @copyright by Maximilian Schmidt and xBoard

     * @package Xengine

     * @version 2.3.2 

     * @uses Xconfig Class

     */

    

    
class XwordFilter

    
{

        private 
$blacklist = array(=> "");

        private 
$whitelist = array(=> "");

        

        const 
filter "*";

        const 
version 2.32;

        

        public function 
__construct()

        {

            

        }

        

        public function 
addWord($word)

        {

            if(
$word != ""array_push($this -> blacklist$word);

        }

        

        public function 
addWhiteWord($word)

        {

            if(
$word != ""array_push($this -> whitelist$word);

        }

        

        private function 
sort($a$b) {

            if (
strlen($a) == strlen($b)) 

            {

                return 
0;

                echo 
"0n";

            }

            return 
strlen($a) > strlen($b) ? : -1;

        }

        

        public function 
filter($text)

        {

            
$array explode(" "$text);

            

            @
usort($this -> blacklist'sort');

            @
usort($this -> whitelist'sort');

            

            foreach(
$array as $id => $word)

            {

                foreach(
$this -> blacklist as $blackId => $blackWord)

                {

                    if(@
stristr(strtolower($word), strtolower($blackWord))) 

                    {

                        
$white false;

                        foreach(
$this -> whitelist as $whiteId => $whiteWord)

                        {

                            if(@
stristr(strtolower($word), strtolower($whiteWord))) $white true;

                        }

                        

                        if(!
$white)

                        {

                            
$len strlen($word) - strlen($blackWord);

                            if(
$len <= 0$len 1;

                            

                            
$i 0;

                            while(
$i $len

                            {

                                
$temp substr($word$istrlen($blackWord));

                                

                                if(
strtolower($temp) == strtolower($blackWord))

                                {

                                    
$tmp substr($temp01);

                                    for(
$i 1;$i strlen($temp);$i++)

                                    {

                                        
$tmp .= self::filter;

                                    }

                                    

                                    
$word str_replace($temp$tmp$word);

                                }

                                

                                
$i++;

                            }

                        }

                    }

                }

                

                
$array[$id] = $word;

            }

            

            
$text "";

            
$i 0;

            

            foreach(
$array as $word)

            {

                
$text .= $word " ";

                
$i++;

            }

            

            return 
$text;

        }

    }

    

    

?>



Hier ein kleines Beispiel:

Code:




/* BEISPIEL: */

    

$replace = new XwordFilter();



$text = "Der Mann hatte Sex! Die Rechtsexperten verurteilte ihn deswegen! Arschloch Arsch. Ein Barsch ist ein Fisch!";

$replace -> addWord("sex");

$replace -> addWord("arsch");

$replace -> addWord("arschloch");

$replace -> addWhiteWord("barsch");

$replace -> addWhiteWord("rechtSEXperte");



echo $replace -> filter($text);




Veröffentlicht von: Maxximum
Veröffentlicht am: 18 Oct. 2008
Bookmarks: social bookmarking yigg it Linkarena Technorati Yahoo Mr. Wrong
Schlüsserwörter: blacklist filter PHP schimpförter schimpfwort schimpfwortfilter whitelist xboard


Themenverwandte Tutorials


Kommentar(e) (4)


Maxximum sagt:

@jack und real: thx^^ jo, ich hätt noch erläutern können, wollte ich eig. machen, hab ich aber vergessen :D

Ich poste vlt. em Nächst noch eine Weitere Klasse der Art(vlt. eine MySql Klasse?)

Da kann ich dann erläutern :D

21 Oct. 2008 20:07:38 • Antworten


Jack135 sagt:

nich schlecht^^ vor allem für das alter :)
umständlich is nur, die gazen erlaubten wörter einzubinden^^
ansonsten top tutorial +

20 Oct. 2008 18:26:15 • Antworten


chpalm sagt:

Dieser Beitrag wurde leider gelöscht!

Zuletzt bearbeitet am: 20 Oct. 2008 15:44:18

20 Oct. 2008 15:43:25 •



Anfang

<<

1

>>

Ende

Kommentar eintragen


!! Jetzt kostenlos anmelden oder einloggen und mitdiskutieren!


Partner: • Designer in ActionFlash HilfeTutorials.dePixelio.deFlashstar BlogLizenzfreie Bilder