【发布时间】:2012-01-28 16:54:17
【问题描述】:
我想将具有基于表格布局的 HTML 文件转换为纯文本,以便通过 PHP 发送多部分电子邮件。
我尝试了一些我在 SO 上找到的不同的预构建类/函数,但它们似乎都没有产生像样的结果,我认为这取决于基于表格的布局。
我不想推出自己的课程来剥离 HTML 和格式化结果,因为我确信在生产中遇到边缘问题之前我不会考虑或无法测试这些问题。
到目前为止,我想出的最佳解决方案是:
- 创建一个临时 HTML 文件
- 使用类似 shell_exec("/path/to/lynx -dumptemporary.html");创建电子邮件的纯文本版本
- 使用一些正则表达式删除任何剩余的不需要的标签
这很好用,但我有点担心它不是实现体面的多部分电子邮件的最佳方式。有人知道更好的方法吗?
为了澄清,我已经尝试了以下但没有成功:
- html2text 类 - http://www.chuggnutt.com/html2text.php
- Markdownify - http://milianw.de/projects/markdownify/
- html2text 版本 2 - http://www.howtocreate.co.uk/php/html2texthowto.html
- http://journals.jevon.org/users/jevon-phd/entry/19818
【问题讨论】:
-
您可以使用
-dump参数将文本返回给PHP,而不是创建“temporary.txt”文件。通过使用-stdin开关(仅限UNIX),您也可以通过STDIN 将HTML 传递到lynx。使用-verbose,您应该能够抑制图像标签。我发现 lynx 总是非常适合创建 HTML 源的纯文本表示。 -
啊,谢谢,'-verbose' 节省了我一些时间!
-
你读过stackoverflow.com/questions/1884550/…中相同问题的答案吗
-
@macjohn:谢谢你的挖掘,很有趣。但我认为 Riceo 已经根据问题尝试过。但请留下评论,以便将两个问题联系起来。
-
@macjohn 是的,我已经尝试过那里提出的解决方案。
标签: php email html-email multipart