/** * Verifica se a palavra informada existe no filtro * * No parâmetro $extra, informe um array com as chaves * 'badwords' e/ou 'ignored'. Como valor das chaves, informe-os * em um array, como: * * $extra = [ * 'badwords' => ['palavraUm', 'palavraDois', ...], * 'ignored' => ['palavraTres', 'palavraQuatro', ...], * ]; * * 'badwords' são palavras que deseja acrescentar ao filtro * 'ignored' são palavras que serão ignoradas pelo filtro * * @param string $string Palavra a ser verificada * @param array $extra Array com informações adicionais * @return boolean */ public static function verify($string, array $extra = null) { require_once __DIR__ . '/Config/Filter.php'; $string = static::doubleChars($string); $getFilter = Config::get('filter'); if (!is_null($extra)) { if (array_key_exists('badwords', $extra)) { $getFilter = array_merge($extra['badwords'], $getFilter); } if (array_key_exists('ignored', $extra)) { for ($i = 0; $i < count($extra['ignored']); $i++) { $extra['ignored'][$i] = static::doubleChars($extra['ignored'][$i]); } for ($i = 0; $i < count($getFilter); $i++) { foreach ($extra['ignored'] as $ignored) { if (is_int(strripos($ignored, $getFilter[$i]))) { $arr[] = $i; } } } if (isset($arr)) { foreach ($arr as $a) { unset($getFilter[$a]); } } } } foreach ($getFilter as $filter) { if (is_int(strripos($string, $filter))) { return true; } } return false; }
public function testExistsKey() { $key = Config::set('arrayOne', ['keyOne' => ' ']); $this->assertArrayHasKey('keyOne', $key); }
<?php use Badwords\Config\Config; /** * Configurações do filtro de palavras */ Config::set('filter', ['anal', 'ana!', 'anus', 'arombad', 'babaca', 'bacanal', 'bacana!', 'bacura', 'bagos', 'baitola', 'ba!tola', 'baito!a', 'ba!to!a', 'bct', 'bicha', 'bisca', 'bixa', 'boazuda', 'bocet', 'boiola', 'bo!ola', 'bolagto', 'bo!agto', 'boquet', 'bolcat', 'bo!cat', 'boset', 'bosta', 'bqt', 'brioco', 'br!oco', 'bronha', 'bucet', 'bunda', 'bunduda', 'buset', 'cadel', 'cade!', 'cacet', 'caga', 'cagado', 'cagona', 'canalha', 'cana!ha', 'caralh', 'cara!h', 'caseta', 'casete', 'chana', 'chaninh', 'chavasc', 'chavask', 'chavasquinh', 'chavasqu!nh', 'chechec', 'chechek', 'chechequinh', 'chechequ!nh', 'cherec', 'cherek', 'cherequinh', 'cherequ!nh', 'chererec', 'chererek', 'chererequinh', 'chererequ!nh', 'chibiu', 'ch!biu', 'chib!u', 'ch!b!u', 'chibumb', 'ch!bumb', 'chifrud', 'ch!frud', 'chota', 'chotinh', 'chot!nh', 'chupad', 'clitoris', 'cl!toris', 'clitor!s', 'cl!tor!s', 'corna', 'corninh', 'corn!nh', 'corno', 'cornud', 'crl', 'cretin', 'cret!n', 'cusa', 'cusinho', 'cus!nho', 'cusud', 'curalho', 'cura!ho', 'cuza', 'cuzinho', 'cuz!nho', 'cuzud', 'egua', 'escrot', 'esporad', 'estupid', 'estup!d', 'fdp', 'foda', 'fode', 'fodid', 'fod!d', 'fodinha', 'fod!nha', 'fodona', 'fornica', 'forn!ca', 'fude', 'fudendo', 'fudecao', 'fudid', 'fud!d', 'furnica', 'furn!ca', 'gonore', 'gosma', 'gosment', 'grelinho', 'gre!inho', 'grel!nho', 'grelo', 'goza', 'gozo', 'idiota', '!diota', 'id!ota', '!d!ota', 'idiotice', '!diotice', 'id!otice', 'idiot!ce', '!d!otice', '!diot!ce', '!d!ot!ce', 'imbecil', '!mbecil', 'imbec!l', 'imbeci!', '!mbec!l', '!mbeci!', 'iscrot', '!scrot', 'kadel', 'kade!', 'kacet', 'kaga', 'kagado', 'kagona', 'kanalha', 'kana!ha', 'karalh', 'kara!h', 'kaseta', 'kasete', 'korna', 'korninh', 'korn!nh', 'korno', 'kornud', 'krl', 'kr!', 'kretin', 'kret!n', 'kuralh', 'kura!h', 'kusa', 'kusinho', 'kus!nho', 'kusudo', 'kuza', 'kuzinho', 'kuz!nho', 'kuzud', 'ladra', '!adra', 'ladroeira', '!adroeira', 'ladroe!ra', '!adroe!ra', 'ladrona', '!adrona', 'lepros', '!epros', 'lesbica', '!esbica', 'lesb!ca', '!esb!ca', 'lolit', '!olit', 'lo!it', 'lol!t', '!o!it', '!ol!t', 'macac', 'machona', 'machora', 'manguaca', 'masturba', 'merda', 'merdinha', 'mija', 'm!ja', 'mijo', 'm!jo', 'mocrea', 'mocreia', 'mocre!a', 'mondrong', 'nadega', 'nazi', 'ninfeta', 'n!nfeta', 'nojeira', 'noje!ra', 'nojent', 'nojo', 'olhota', 'orgia', 'org!a', 'otari', 'otar!', 'paspalh', 'pauzao', 'pauzaum', 'pemba', 'penian', 'pen!an', 'penis', 'pen!s', 'pentelh', 'pente!h', 'pepeca', 'pepeka', 'pererec', 'pererek', 'peroc', 'perok', 'peru', 'pintudo', 'p!ntudo', 'pintao', 'p!ntao', 'pintaum', 'p!ntaum', 'pintaso', 'p!ntaso', 'piranha', 'p!ranha', 'piriguet', 'p!riguet', 'pir!guet', 'p!r!guet', 'piroc', 'p!roc', 'pirok', 'p!rok', 'pora', 'porno', 'ppk', 'pqp', 'prostibulo', 'prost!bulo', 'prostibu!o', 'prost!bu!o', 'prostitut', 'prost!tut', 'punheta', 'pupunha', 'pustula', 'pustu!a', 'puta', 'putinh', 'put!nh', 'puto', 'rabao', 'rabaum', 'rabo', 'rabud', 'racha', 'retardad', 'rola', 'ro!a', 'rolinha', 'ro!inha', 'rol!nha', 'rosca', 'sacana', 'sapata', 'sapataum', 'sifili', 's!fili', 'sif!li', 'sifi!i', 'sifil!', 's!f!li', 's!fi!i', 's!fil!', 'sif!l!', 's!f!l!', 'siriric', 's!riric', 'sir!ric', 'sirir!c', 's!r!ric', 's!rir!c', 'sir!r!c', 's!r!r!c', 'tarad', 'tesao', 'testuda', 'tesud', 'tezao', 'tezaum', 'tezud', 'transa', 'transo', 'trocha', 'troucha', 'trolha', 'tro!ha', 'troucha', 'trouxa', 'troxa', 'vaca', 'vadia', 'vad!a', 'vagabund', 'v****a', 'vag!na', 'vead', 'viad', 'v!ad', 'vibrador', 'v!brador', 'xavasc', 'xavask', 'xavasquinh', 'xavasqu!nh', 'xerec', 'xerek', 'xerequinh', 'xerequ!nh', 'xererec', 'xererek', 'xererequinh', 'xererequ!nh', 'xexec', 'xexek', 'xexequinh', 'xexequ!nh', 'xibiu', 'x!biu', 'xib!u', 'x!b!u', 'xibumb', 'x!bumb', 'xifrud', 'x!frud', 'xota', 'xotinh', 'xot!nh', 'xana', 'xaninh', 'xan!nh', 'xupad']);