3

現在、受信した電子メールの内容をフィルタリングするスクリプトを作成しています。

これらの電子メールは私のニュースレター キャンペーンへの返信です。そのために、「お願いします」、「削除してください」などの特定の単語を探すことができます。また、電子メールがメーラー デーモンから送信されたものかどうかを確認して、ユーザーに電子メール アドレスを変更するよう警告することもできます。次回ログイン時。

まず、MySQL データベースから辞書を取得する必要があります。辞書には現時点で 77 語が含まれています。次に、処理する各メールの各単語に対して 2 つの preg_match_all 関数を呼び出します。

\bplease\bメール本文に単語全体が表示されているか確認したいのですが、人によっては間違えて「お願いします」と書いてしまうので、その後で使っ\bp+l+e+a+s+e+\bています。

しかし、辞書は成長しており、さらに多くの単語が内部に追加されており、スクリプトは遅くなっており、1 秒あたり少なくとも 4 通の電子メールを処理しています。

メールを今よりも速く処理する方法はありますか?

77 個の preg_match_all コマンドを実行する代わりに、77 個の単語に一致する正規表現を作成する方が速いでしょうか?

4

1 に答える 1

2

「77 個の preg_match_all コマンドを実行する代わりに、77 個の単語に一致する正規表現を作成する方が速いでしょうか?」という質問に対しては、正規表現をまったく使用しないことをお勧めします。私は間違っているかもしれませんが、文字列関数は正規表現よりも高速だと思います。これを読んでください:http://www.webdeveloper.com/forum/showthread.php?190485-performance-doubts-regex-vs-string-functions-using-this-and-1-more-doubt!-plz!- )これも読んでください。どちらがより効率的ですか?PHP文字列関数またはPHPの正規表現?

于 2012-09-07T13:43:13.713 に答える