RE: Question on explode and join.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



There ya go. Works and is shorter than what I did. Thanks.
 
One other question. if I have bunny and bunnyhole in the badword array. if
someone types in bunnyhole, I end up getting *hole in the clean string. If I
change the order of the words in the array would that solve the problem?
 
Thanks

  _____  

From: Eric Butera [mailto:digital.tarsier@xxxxxxxxx] 
Sent: September 13, 2006 1:07 PM
To: Beauford
Cc: php
Subject: Re:  Question on explode and join.


On 9/13/06, Beauford <php-user@xxxxxxxxxx> wrote: 

Hi,

I have a form which I want to check for inappropriate words before it is
posted. I have used explode to put the string into an array using a space as
the delimiter and then I check it against another array that contains the 
inappropriate words.
I then replace the inappropriate words with *'s and join the array back into
a string.

This works perfectly except for one thing.

If the word in the string has a any kind of punctuation after it (period, 
comma) it won't be matched.

So if  moron is an inappropriate word then "you are a moron" works, but "you
are a moron." won't.

Any ideas?

Thanks

This is my code.

function badwords($string) {

        $language = array(contains the inappropriate words);

        $words = explode(" ",$string);
        $count = count(explode(" ", $string));

        for($i = 0; $i < $count; $i++) { 
                if(in_array(strtolower($words[$i]), $language)) {
                        $words[$i] = "*****";
                }
        }

        $newcomments = join(" ",$words);

        return $newcomments;
}



Perhaps you could try an approach like this:
<?php
$dirty = array(
    'ipsum',
    'eloquentiam',
    'Vero'
);

$string = "Lorem ipsum ius no etiam veniam, usu alii novum ne, sed cu
molestiae eloquentiam. Vero invenire philosophia est ne, quo nemore timeam
an."; 

$clean = str_replace($dirty, '*', $string);

echo "<br>string: ". $string;
echo "<br>clean: ". $clean; 


GENERATES:

string: Lorem ipsum ius no etiam veniam, usu alii novum ne, sed cu molestiae
eloquentiam. Vero invenire philosophia est ne, quo nemore timeam an.
clean: Lorem * ius no etiam veniam, usu alii novum ne, sed cu molestiae *. *
invenire philosophia est ne, quo nemore timeam an.



[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux