1

ここでやろうとしているのは、ある種のフィルターを設定することです。

現時点ではソース コードはありませんが、これを行う方法を見つけたらすぐに入力できます。

だから私が持っていると言う

$Variable1 = "The Brown Fox Jumps";

If ステートメントが必要です。

IF $Variable1 contains a word from a .txt file (filter.txt) Then $Variable1 = "Filtered"

したがって、テキストファイルに含まれている場合

Hey
Hi
Jump
Brown

全体がフィルター処理されます。私はそれをどのように書くかわからないので、それを入力するのに少し役立つといいでしょう:)

みんなありがとう

4

4 に答える 4

1

そして、あなたが理解していないのは何ですか?

最も簡単な方法は次のとおりです。

1) テキストファイルを読む:$str = file_get_contents('filter.txt');

2) テキスト ファイルの内容を配列に分解します: (最初のパラメータは区切り文字です。必要に応じて変更してください)

$badwords = explode(" ",$str);

3)$variable新しく作成した配列のいずれかの単語と一致する場合は、それを「filtered」に変更します。

foreach($badwords as $badword) {
   if(stristr($badword,$variable) {
       $variable = 'filtered';
       break;
    }
 }
于 2012-09-19T00:34:03.220 に答える
1

新しい変数を割り当てるほど、変数名自体を変更することはありません。

// if you want to search by ONE word
$file = file_get_contents(your_text_file_here);

if(stripos($file, $variable1)){
// there was a match
  $variable1 = "Filtered";
}



// if you want to search your document for MULTIPLE words
$file = file_get_contents(your_text_file_here);

foreach(explode(' ', $file) as $word) {
  if(stripos($word, $variable1)){
  // there was a match
    $variable1 = "Filtered";
  }
}

これが役立つかどうかはよくわかりませんが、stripos は文字列を受け取り、大文字と小文字を区別せずに一致するかどうかを判断する関数です。

コードを入力していただければ、さらにお手伝いできると思います。

于 2012-09-19T00:34:56.317 に答える
1

コードは次のとおりです。

$filters = file('filter.txt');
foreach( $filters AS $word ) {
  if( stripos( $Variable1, $word ) !== null ) {
     $Variable1 = 'filtered';
     break;
   }
}
于 2012-09-19T00:36:14.740 に答える
1

ファイルが改行で区切られている場合:

$file = file_get_contents('filter.txt');
$bad_words = explode(PHP_EOL, $file); // If PHP_EOL doesn't work there are other EOL characters you can try.
$variable1 = "This is some string."
$compare = explode(' ', $variable1);
if(count(array_intersect($bad_words, $compare)) > 0){
  $variable1 = 'Filtered';
}
于 2012-09-19T00:52:51.230 に答える