有没有更好的方法然后使用Lynx在PHP中可靠地将HTML转换为Plaintext

时间:2011-12-27 18:43:17

标签: php email html-email multipart

我想将带有基于表格的布局的HTML文件转换为纯文本,以便通过PHP发送多部分电子邮件。

我已经尝试了一些我在SO上找到的不同的预构建类/函数,但是它们中没有一个看起来产生了不错的结果,我认为这取决于基于表格的布局。

我不想滚动我自己的类来剥离HTML并格式化结果,因为我确信存在边缘问题,我不会考虑或能够测试,直到我在生产中遇到它们。

到目前为止,我提出的最佳解决方案是:

  1. 创建临时HTML文件
  2. 使用类似shell_exec(“/ path / to / lynx -dump temporary.html”);创建电子邮件的纯文本版本
  3. 使用一些正则表达式来删除任何剩余的不需要的标记
  4. 这很好用,但我有点担心它不是获得体面的多部分电子邮件的最佳方式。有人知道更好的方法吗?

    为了澄清,我已经尝试了以下但没有成功:

2 个答案:

答案 0 :(得分:1)

Lynx不是我真正相信的最佳解决方案:)此外,我自己使用了html2text并且它工作得很好而且比lynx更好..无论如何,如果你更喜欢regexing,它会比使用它更加沉重。系统shell(shell_exec,system,exec,popen),因为你需要preg_replace所有不必要的标签,并且在php正则表达式是致命的慢。所以我想如果它在Linux机器上,最好传递给html2text ..

答案 1 :(得分:1)

PHP DomDocument应该可以帮到你。 您可以遍历DOM树并根据需要删除相关内容。

http://php.net/manual/en/class.domdocument.php

关于SO的相关问题:

Parse HTML with PHP's HTML DOMDocument