私は自分のサイトで特定の種類の投稿を防止しようとしています。具体的には、ポストはランダムな単語、改行文字、ランダムな文字です。PHP preg_matchは連続した改行文字に一致します
したがって、2人の改行文字を使用して(段落間に空白行を作成するために)使用する正当なユーザーがいるかもしれませんが、3+はスパムとしてマークすることができます。
私はこのregexをregex101でテストしましたが正常に動作しますが、私は自分のサイトでテストしたときに決して起動しません。エコーラインのコメントを外すと、テストデータの番号4が表示されるので、改行が見えます。私の正規表現は間違っていますか?
テストデータ:
This is a potential
spam post
コード:
は//echo substr_count($lowercaseBody, "\n");
if (preg_match('/\n{3,}./', $lowercaseBody)){
error("Stop Spamming my chan you .");
}
試み: - '[\ n個の\ rを] {3} ' – rock321987
あなたのテストデータには2つの新しい行しかないようです:['(\ n {2}) '](https://regex101.com/r/sB6pE0/1) – AKS
@AKSそれはSOの問題です。複数の改行をシングルにしてください。質問を編集するには – rock321987