次のコード行では、ereg_replace が廃止されたため、どうすれば ereg_replace を preg_replace に変換できますか。
私は badwords.txt と呼ばれるファイルを持っています。これには、スパムである可能性が高い長い範囲のフレーズ/単語 (1 行に 1 つ) が含まれています (これらには任意の文字が含まれる可能性があります)。このコードを使用して、スパムである可能性のある単語の数を計算し、リファラーをどうするかを決定します。
$fh = fopen("badwords.txt","r"); //Open the file that contains the words
while($word = fgets($fh,4096))
{
$text = ereg_replace(trim($word),"#####",$text);
}
$offence = substr_count($text, "#####");
それがあった場合、私はそれを取得します:
$text = ereg_replace('[^A-Za-z0-9_]', '######', $text );
次に、次のようになります。
$text = preg_replace('/[^A-Za-z0-9_]/', '######', $text );
ただし、上記のコードで余分なエスケープを機能させることはできません。ereg_replace コードを実行するとエラーが発生しますが、それでもデータは表示されます。何も表示しないに切り替えると preg_replace(trim($word),"#####",$text);
。
ポインタに感謝します!