わかりました、これが私がPHPスクリプトを開いてユーザーがアップロードしたWord文書を読み、文書に含まれる電子メールアドレスを取得してデータベースに保存することです。
メールアドレスのみ!のように混ざります。
電子メール : someone@example.com または「電子メールは someone@example.com です」
任意の形式..確かなことの 1 つは、電子メール ID と他の単語を区切るスペースがあることです。誰かが私を助けることができますか?:D
これは実際には少し広いです。基本的に、次の手順を処理する必要があります。
ユーザーがファイルをアップロードできるようにする必要があります。w3schoolsにはチュートリアルがあります。
Office ファイルは複雑です。画像やその他のドキュメントなどを埋め込むことができるため、技術的にはそれぞれがファイル システム全体です。新しい.docx
ファイルは、実際には XML を含む単なる zip ファイルです。名前を に変更し.zip
て開いてみてください。古いスタイル.doc
は独自の MS 形式であり、同様に複雑ですが、はるかに難読化されています。このライブラリは、Word ファイルを HTML に変換するようで、読みやすくなっています。
ここで、正規表現を使用して本文からメールアドレスを抽出するのが最善の方法だと思います。メールアドレスが複数ある場合は?これは、役に立つかもしれない電子メールの正規表現の紹介です。この答えは同じことです
より詳細な回答を得るには、より具体的な質問を提供する必要があります。
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);