loja Bad lista de palavras em um Array
Leia a lista " palavrão " do disco e armazená-lo em uma estrutura de dados . Você pode considerar a criação de uma matriz e armazenamento de cada " palavra feia " como um elemento da matriz, tais como:
$ bad_word [0] = " thisbadword "; $ bad_word [1] = " thatbadword " ; ;
Embora este tipo de estrutura vai funcionar , é ineficiente porque você tem que procurar em toda a gama de "palavras más" para cada palavra que você verificar a lista . Para uma maneira mais viável de realizar esta tarefa, criar uma tabela hash. Projete uma matriz associativa e armazenar cada " má palavra" como a chave matriz. Atribuir qualquer coisa como o valor , como " 1" ou " verdadeiro". Para determinar se uma palavra está na lista , basta para referenciar a chave de matriz, em vez de procurar em toda a matriz. Por exemplo :
$ bad_words = array (); $ fp = fopen ( " badwordsfile.txt ", " r" ) or die (" ! Não foi possível abrir o arquivo palavrões " ), enquanto ( $ palavra = fgets ( $ fp ) ) {$ bad_words [$ palavra ] = 1; }
obter o conteúdo em Filter
Recuperar o conteúdo que você deseja filtrar. O conteúdo pode ser comentários enviados por usuários de um formulário HTML, um documento no disco ou até mesmo uma página Web a partir da Internet. Armazene o conteúdo em uma única variável. Por exemplo :
$ to_do = file_get_contents ( " http://badmusiclyricswithprofanity.com ");
Extrato palavras do conteúdo
Pausa o conteúdo não filtrada em palavras , separando as palavras nos espaços que os separam. Use a função de PHP " explodir " para converter a string não filtrada em uma matriz de palavras que você pode filtrar individualmente. Por exemplo :
$ words_to_filter = explode ("", $ to_do );
Filtro de palavrões
Iterate através da matriz de palavras e verificar cada palavra contra a matriz que contém a lista de " palavrão " . Se você verificar a matriz , olhando para ver se o valor da matriz é um, você vai gerar um erro cada vez que você tentar acessar uma palavra que não está na lista , porque o índice da matriz não existe. Em vez disso , use a função " isset " para determinar se a palavra é na matriz. Se houver uma correspondência , substituir a palavra com a substituição escolhido. Por exemplo :
foreach ($ words_to_filter quanto $ palavra => $ marca ) {if ( isset ($ $ bad_words [ palavra ]) ) {$ palavra = $ substituto ;}}
Remontar o texto
Coloque o texto volta para uma única variável com a função " implode " - o oposto de " explodir. " É preciso cada valor da matriz e juntá-lo com caracteres que você designar , no nosso caso , é um espaço. Eco os resultados dos conteúdos filtrados para a tela. Por exemplo :
$ filtrada = implode ( " ", $ words_to_filter ); echo $ filtrada; >