<?php

#
# Replaces words from a banlist.

# banlist.txt contains a list of banned words, like:
#
# AA
# AA BBBB
# AABBBBB
#
$banlist file("banlist.txt");
$unfiltered 'My aa  bbbb';

// Replace preceding and trailing whitespaces and CRLF characters
foreach ($banlist as $index => $value) {
    
$banlist[$index] = '|' preg_replace('/\s+/''\s+'preg_quote(trim($value))) . '|i';
}

// Sort compare function; puts 'word<suffix>' before 'word'
function cmp($a$b) {
    if (
$a == $b) {
       return 
0;
    }

    if (
=== strpos($a$b)) {
        return -
1;
    }
    return (
$a $b) ? -1;
}

// Sort stuff
usort($banlist'cmp');

// Filter the unfiltered text
$filtered preg_replace($banlist'***'$unfiltered);

// Print the filtered text
print $filtered;

?>