如何使用 PHP 和 Python 通过 STDIN 和 STDOUT 结合 html2text 获取 Markdown 格式文本?

1 投票
1 回答
1781 浏览
提问于 2025-04-16 09:56

我正在通过标准输入(STDIN)从PHP发送一段HTML文本到Python。我的目标是使用Aaron Swartz的脚本“html2text.py”,然后通过标准输出(STDOUT)把结果打印回PHP。

朋友Jan给了我一些建议,帮我指明了方向。下面是我的测试代码:

PHP代码:

$t='<p><b>Hello</b><i>world!</i></p>';
$scaped=preg_quote($t,"/")."\n";//\<p\>\<b\>Hello\<\/b\>\<i\>world\!\<\/i\>\<\/p\>
exec('python hi.py '.$scaped,$r);
print_r($r);//result

Python代码:

#! /usr/bin/env python
import html2text
import sys
#print html2text.html2text(sys.stdin.read()) #this part of the code didn't work out...
print html2text.html2text(sys.argv[1])

结果:

Array
(
    [0] => **Hello**_world!_
    [1] => 
    [2] => 
)

所有文件都在同一个目录下(权限设置为077)。我使用的是Aaron Swartz的html2text.py版本2.39,并且在我的Fedora 14上安装了“python-html2text.noarch”,不过我没能让后者正常工作。

1 个回答

2

你只是把最后一行传给了html2text,而且你没有正确使用html2text,应该这样做:

import html2text
import sys

print html2text.html2text(sys.stdin.read())

撰写回答