3

わかりました、これが私がPHPスクリプトを開いてユーザーがアップロードしたWord文書を読み、文書に含まれる電子メールアドレスを取得してデータベースに保存することです。

メールアドレスのみ!のように混ざります。

電子メール : someone@example.com または「電子メールは someone@example.com です」

任意の形式..確かなことの 1 つは、電子メール ID と他の単語を区切るスペースがあることです。誰かが私を助けることができますか?:D

4

2 に答える 2

2

これは実際には少し広いです。基本的に、次の手順を処理する必要があります。

ワード文書をアップロードする

ユーザーがファイルをアップロードできるようにする必要があります。w3schoolsにはチュートリアルがあります。

コンテンツを解析する

Office ファイルは複雑です。画像やその他のドキュメントなどを埋め込むことができるため、技術的にはそれぞれがファイル システム全体です。新しい.docxファイルは、実際には XML を含む単なる zip ファイルです。名前を に変更し.zipて開いてみてください。古いスタイル.docは独自の MS 形式であり、同様に複雑ですが、はるかに難読化されています。このライブラリは、Word ファイルを HTML に変換するようで、読みやすくなっています。

メールアドレスを見つける

ここで、正規表現を使用して本文からメールアドレスを抽出するのが最善の方法だと思います。メールアドレスが複数ある場合は?これは、役に立つかもしれない電子メールの正規表現の紹介です。この答えは同じことです

より詳細な回答を得るには、より具体的な質問を提供する必要があります。

于 2012-07-22T14:04:55.207 に答える
1

Word をテキストに変換する:

$filename="file.doc";
$TXTfilename = $filename . ".txt";
$word = new COM("word.application") or die("Unable to instantiate Word object");
$word->Documents->Open($filename);
// the '2' parameter specifies saving in txt format
$word->Documents[1]->SaveAs($TXTfilename ,2);
$word->Documents[1]->Close(false);
$word->Quit();
$word->Release();
$word = NULL;
unset($word);
$content = file_get_contents($TXTfilename);
unlink($TXTfilename);

配列内のすべての電子メールを取得します。

$content = "My email is email@example.com"; // it's example. 
$matches = array();
$pattern = '/[A-Za-z0-9_-]+@[A-Za-z0-9_-]+\.([A-Za-z0-9_-][A-Za-z0-9_]+)/'
preg_match($pattern,$content,$matches);
于 2012-07-22T14:04:27.390 に答える