好的,这是我想要一个 php 脚本打开并读取用户上传的 Word 文档并获取文档中的电子邮件地址并将其存储到数据库的内容。
只有电子邮件地址!它会像
电子邮件:someone@example.com 或喜欢“电子邮件是某人@example.com”
任何格式.. 可以肯定的一件事是会有空格分隔电子邮件 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);