3

好的,这是我想要一个 php 脚本打开并读取用户上传的 Word 文档并获取文档中的电子邮件地址并将其存储到数据库的内容。

只有电子邮件地址!它会像

电子邮件:someone@example.com 或喜欢“电子邮件是某人@example.com”

任何格式.. 可以肯定的一件事是会有空格分隔电子邮件 ID 和其他单词。有人能帮我吗 ?:D

4

2 回答 2

2

这确实有点宽泛。从根本上说,您需要处理以下步骤:

上传word文档

您需要让用户上传文件。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 回答