Avatar billede leshrac Nybegynder
16. september 2007 - 19:42 Der er 10 kommentarer og
1 løsning

Leder efter noget str_search something?

Er ved at lave et PHP badmouth-filter

der er jo en milliard måder at gøre det på...

men min tanke er at lave et array med ord jeg ikke vil høre på min side...

Det hele gik fint nok, jeg splittede brugerinput op i ord med explode, loopede dem og brugte in_array("ord", array());

det virkede jo ganske fint indtil jeg skulle til at lave listen...

Lad os sige at min liste over ord så sådan her ud

array("ord1", "ord2", "ord3");

problemet er nu at jeg kan måske sætte ord1 og ord2 sammen

eksempel: (der advares om grimt sprog)

hvis man havde møg og man havde luder... så sættes de to ord jo ofte sammen (møgluder).. hvis mit array skulle indeholde alle dårlige ord og så alle de samme ord sat sammen på forskellige måder ville det array jo blive uendeligt...´

er der ikke lavet en funktion der søger efter en række bogstaver sat sammen?
Avatar billede olebole Juniormester
16. september 2007 - 19:55 #1
<ole>

Det kan blive meget vanskeligt: 'pikansjos' og 'piksko'  :)

I øvrigt er det langt bedre performende at lave en 'hash-tabel' i stedet for at bruge in_array:

$forbidden = array(
    "pik" => 1,
    "luder" => 1,
    "fuck" => 1
);

if ( $forbidden[$ord] ) // Forbudt ord

/mvh
</bole>
Avatar billede neoman Novice
16. september 2007 - 20:00 #2
Hehe - bare tænk dig om mens du gør det:)

Der er jo denne historie om en kvindelig jurist, som skulle oprette sig på et website i US, men fik ikke lov til det. Årsag ? Hendes efternavn var Babcock.  Forunderligvis fik hun dog lov til at oprette sig selv under efternavnet Babpenis :-)

http://www.apnic.net/mailing-lists/apple/archive/2000/08/msg00013.html
Avatar billede leshrac Nybegynder
16. september 2007 - 20:05 #3
hehe den har jeg overvejet neoman :)

den lader det ske det brugeren har tænkt sig at skrive eller hedde, men den underretter lige admin om de grimme ord. :) sjov historie though :

Kigger lige på løsningsforslaget olebole... det ser ikke helt dumt ud :)
Avatar billede olebole Juniormester
16. september 2007 - 20:27 #4
Det her er nok bedre:

<?
$sForbidden = "pik|luder|fuck|lort";

$sStr = "blabla bla piksko bla møjluder lortefuckhovede bla hundelort bla blabla pik bla blabla luder bla blabla pikansjos bla blabla blabla bla";

$sMatch = "/\b[\w]*(".$sForbidden.")[\w]*\b/";
preg_match_all($sMatch, $sStr, $matches);

// $matches[0] er nu et array af fundne forbudte ord - og/eller sammensætninger med disse
?>

<pre>
<?=$sStr."\r\n\r\n"?>
<? var_dump($matches[0]) ?>
</pre>
Avatar billede olebole Juniormester
16. september 2007 - 20:34 #5
- og søgningen bør gøres insensitive, så 'Pik' med stort hove ... ehhhh ... med stort begyndelses bogstav også fanges  :)

$sMatch = "/\b[\w]*(".$sForbidden.")[\w]*\b/i"; // <-- i'et i slutningen
Avatar billede leshrac Nybegynder
16. september 2007 - 20:39 #6
tak Olebole.. kigger lige på nummer 2 løsning også ;)
Avatar billede olebole Juniormester
16. september 2007 - 20:44 #7
Selvtak. Du må dog stadig tænke dig godt om. Der er f.eks. mange grimme kombinationer med 'so', men du er nødt til at definere dem alle - eller i det mindste de mest oplagte. Ellers bliver du spammet af mails om alle de lovlige kombinationer ... for der er rigtig mange.
Avatar billede leshrac Nybegynder
18. september 2007 - 15:33 #8
Smid lige et svar Olebole...

Det var to meget gyldige svar du kom med :) endte ud med at bruge en 3. mulighed... men de to muligheder du kom med var 100% som de skulle være :)
Avatar billede olebole Juniormester
18. september 2007 - 17:38 #9
- bare du fik det løst  ;o)
Avatar billede olebole Juniormester
19. september 2007 - 15:54 #10
Tak for points  ;o)
Avatar billede leshrac Nybegynder
19. september 2007 - 18:34 #11
selvtak :)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester