将html转为表格,将HTML表格转换为文本

Roman..

11

不要重新发明轮子.表格渲染很困难,只使用文本渲染表格更加困难.为了阐明提供HTML的所有功能的基于文本的表格渲染器的复杂性,请查看w3m,它是开源的:

这3000行代码只用于显示html表格.

将HTML转换为文本

有一些基于文本的浏览器可以被命令行使用,比如lynx.您可以fwrite将html表放入文件中,将该文件传递到基于文本的浏览器并获取其输出.

注意:基于文本的浏览器通常用在shell中,它通常以等宽字体显示.这仍然是先决条件.

lynx和w3m都可以在Windows上使用,你不需要"安装"它们,你只需要拥有可执行文件和从PHP运行它们的权限.

代码示例:

$table = '

foobar
'; //this contains your table

$html = "

$table";

//write html file

$tmpfname = tempnam(sys_get_temp_dir(), "tblemail");

$handle = fopen($tmpfname, "w");

fwrite($handle, $html);

fclose($handle);

$myTextTable = shell_exec("w3m.exe -dump \"$tmpfname\"");

unlink($tmpfname);

w3m.exe 需要在您的工作目录中.

(没试过)

渲染文本表

如果你想有一个本地的PHP解决方案,这里还有至少一个框架(https://github.com/c9s/CLIFramework旨在为PHP具有表格绘制控制台应用程序).

它不会将HTML转换为文本,但它可以帮助您构建一个支持多行单元格的文本格式表(这似乎是最复杂的部分).

使用CLIFramework,您需要这样的代码来呈现您的表:

require 'vendor/autoload.php';

use CLIFramework\Component\Table\Table;

$table = new Table;

$table->addRow(array(

"test product", "5", "£50.00"

));

$table->addRow(array(

"Project Name: Test Project", "", ""

));

$table->addRow(array(

"Page 1 : 01 New York 1.jpg", "", "£0.00"

));

$myTextTable = $table->render();

然而,CLIFramework表呈现器似乎不支持类似于"colspan"的任何内容.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值