bystro/html-table-converter

将HTML表格转换为其他格式

1.1.1 2023-10-28 15:54 UTC

This package is auto-updated.

Last update: 2024-09-28 18:05:27 UTC


README

作者:Krzysztof Kubacki

日期:04-03-2019

关于

将HTML表格转换为其他格式

该项目处于ALPHA状态,这意味着它尚未完全功能化!

受项目https://github.com/tremblay/HTML-Table-to-JSON的启发

示例

假设我们有以下表格

当我们运行以下代码时

<?php

$converter = HtmlTableConverter\HtmlTableConverterFactory::fromHtml($tableHtml);
var_dump($converter->convert()); 

然后我们将得到以下结果

array(3) {
  [0] =>
  array(3) {
    [0] =>
    string(10) "First name"
    [1] =>
    string(9) "Last name"
    [2] =>
    string(6) "Points"
  }
  [1] =>
  array(3) {
    'First name' =>
    string(4) "Jill"
    'Last name' =>
    string(5) "Smith"
    'Points' =>
    string(9) "<b>50</b>"
  }
  [2] =>
  array(3) {
    'First name' =>
    string(3) "Eve"
    'Last name' =>
    string(7) "Jackson"
    'Points' =>
    string(9) "<b>94</b>"
  }
}

从列值中删除HTML标签

<?php

$converter = HtmlTableConverter\HtmlTableConverterFactory::fromHtml($tableHtml);
$converter->stripTagsFromColumnValues();
var_dump($converter->convert()); 
array(3) {
  [0] =>
  array(3) {
    [0] =>
    string(10) "First name"
    [1] =>
    string(9) "Last name"
    [2] =>
    string(6) "Points"
  }
  [1] =>
  array(3) {
    'First name' =>
    string(4) "Jill"
    'Last name' =>
    string(5) "Smith"
    'Points' =>
-    string(9) "<b>50</b>"
+    string(2) "50"
  }
  [2] =>
  array(3) {
    'First name' =>
    string(3) "Eve"
    'Last name' =>
    string(7) "Jackson"
    'Points' =>
-    string(9) "<b>94</b>"
+    string(2) "94"
  }
}

删除标题值

<?php

$converter = HtmlTableConverter\HtmlTableConverterFactory::fromHtml($tableHtml);
$converter->doNotIncludeHeaderRowInResult();
var_dump($converter->convert()); 
array(2) {
-  [0] =>
-  array(3) {
-    [0] =>
-    string(10) "First name"
-    [1] =>
-    string(9) "Last name"
-    [2] =>
-    string(6) "Points"
-  }
  [0] =>
  array(3) {
    'First name' =>
    string(4) "Jill"
    'Last name' =>
    string(5) "Smith"
    'Points' =>
    string(9) "<b>50</b>"
  }
  [1] =>
  array(3) {
    'First name' =>
    string(3) "Eve"
    'Last name' =>
    string(7) "Jackson"
    'Points' =>
    string(9) "<b>94</b>"
  }
}

转换为JSON

<?php

$converter = HtmlTableConverter\HtmlTableConverterFactory::fromHtml($tableHtml);
$converter->convert(\HtmlTableConverter\Converter\Type::JSON);

支持的输出格式

  • 数组
  • JSON

安装

Composer

在命令行中

composer require bystro/html-table-converter

或 composer.json

"require": {       
    "bystro/html-table-converter": "^1.0"
}