我通过PHP exec命令运行html2text命令,将HTML转换为iMac上的纯文本。但是我得到了一些非常奇怪的输出,字母重复,一些随机的次数以及变得奇怪的字符。
示例输出(通过保存Stack Overflow主页的HTML然后通过html2text运行)。
cc uu_rr_rr_ee_nn_tt_ cc oo_mm_mm_uu_nn_ii_tt_yy 的 的 * c h_a_t b l_o_g l o_g_ o u_t S t_a_c_k_ O v_e_r_f_l_o_w
每次我使用命令行程序时都会发生这种情况,我尝试过各种HTML页面。
我不太了解字符编码以及html2text写入其输出缓冲区的方式。我试图使用-ascii和-utf8标志,这些标志确实没有任何区别。
我还尝试了不同的方法来设置程序的输入/输出,例如:
html2text <<< $string;
html2text <<< $string > output.txt
当然还有记录的方式
html2text -o $outputTextFile $inputHtmlFile
我甚至尝试将输出直接加载到我的PHP代码中的字符串中,然后使用file_put_contents来保存它(我认为它可能与流/缓冲区有关)但它以相同的方式保存。奇怪的是,如果我将文本直接输出到命令行,输出看起来没问题。
我现在完全没有想法了,我花了两天的时间试图弄清楚它是怎么回事。
以前是否有人遇到类似问题?
由于
答案 0 :(得分:1)
因此,如果您运行命令html2text -o file.txt page.html
首先,我会测试一个简单的测试html文件,例如这个
<强> file.html 强>
<!DOCTYPE HTML>
<html>
<head></head>
<body>
<span>I'm a simple html file</span>
</body>
</html>
我还会用这些行创建一个小的php文件:
<强> simple.php 强>
<?php
exec('html2text -o file.txt page.html');
我会在shell运行中测试它:
html2text -o file1.txt page.html php simple.php
如果生成的文件相等
如果生成的文件不同
which -a html2text
。