2010-11-23 22 views
-2

良い日、女性と紳士。私はプログラミングの初心者で、私の問題は電子メールアドレス用のPHPパーサーを作成することです。私はウェブサイト全体を解析し、電子メールで.txtファイルを作成する必要があります。 それは問題です。何を使用しなければならないのですか?それは適切なPHP関数* file_get_contents *であれば何でもよいでしょうか、あるいはPEARプロジェクトのPHPparser_Generatorでしょうか? アイデア P .:コード自体を書かないように思います。自分でやりたいからです。ちょっとしたヒント。電子メールアドレスのPHPパーサー

ありがとうございます。よろしくお願いします、Aen

+3

は疑わしいですね。 –

+1

今、なぜあなたはウェブサイトから電子メールアドレスを収穫したいのですか?ウェブサイトを管理している場合、電子メールアドレスはユーザープロファイルなどでアクセス可能になります。私にスパムが響きます。 –

+0

スクリプトキディプロジェクトのような匂い。 – stillstanding

答えて

0

はい、file_get_contentsとなります。これを変数に代入し、preg_match_allを使って次の式を見つけます:/[A-Z0-9._%-][email protected][A-Z0-9.-]+\.[A-Z]{2,4}/i。これは電子メールアドレスに一致する正規表現です。私の頭の上オフ

+1

非常にマイナーなコメント - プラス記号は電子メールアドレスのユーザーセクションでも有効で、GMailやその他の電子メールプロバイダでの利用によって、ユーザーが複数の「仮想」電子メールアドレスを持っています。つまり、[email protected]と[email protected]は同じアドレスを使用します。 –

+0

電子メールアドレスの解析は軽く行うべきではありません:http://www.linuxjournal.com/article/9585 – stillstanding

+0

Lucanosが指摘したように、+は他の記号とともに含める必要があります。 http://www.regular-expressions.info/email.htmlを見て、実際のRFC 2822の実装をチェックしてみてください。 –

1

、のようなもの.....

preg_match_all("/([a-z0-9\._%+!$&*=^|~#%\'`?{}/\-][email protected][a-z0-9\.-]+\.[a-z]{2,6})/i", 
    file_get_contents($somefile), $matches, PREG_PATTERN_ORDER); 
foreach ($matches[0] as $addrspec) { 
    mail($addrspec, "hello", $msg); 
} 
+0

電子メールアドレスの最初の部分には、技術的には@も含めることができます:そして、あなたは私にADDR-SPECと一致するものだけを批判しましたので、全体の電子メールアドレスに一致するように改訂したいと思います。 。ただし、コード全体を含めると+1します。 –

関連する問題