0

我正在寻找计算表中每个唯一值的实例HTML并将结果返回到它自己的表中。该表是根据用户的文本输入生成的。因此,例如,用户输入可能如下所示:

Report 46     Bob Marley   4/20/2013    Summary: I shot the sheriff    Case #32  User Error
Report 50    Billy The Kid    7/14/2013   Summary: I'm just a boy in a grown up world   Case #33    User Experience
Report 51    Oscar The Grouch    10/10/2013   Summary: Refuse, reuse, recycle   Case #33    User Experience

大空间是制表符。

哪个会返回:

<table>
 <tr>
  <td>Bob Marley</td><td>46</td><td>4/20/2013</td><td>Case #32</td><td>User Error</td>
 </tr>
 <tr>
  <td>Billy The Kid</td><td>50</td><td>4/20/2013</td><td>Case #33</td><td>User Experience</td>
 </tr>
 <tr>
  <td>Oscar The Grouch</td><td>51</td><td>10/10/2013</td><td>Case #33</td><td>User Experience</td>
 </tr>
</table>

我需要做的是1)统计报告的数量,2)统计每个案例编号出现的次数,2)统计每个类别出现的次数,然后在下一页上显示,如下所示:

Number of reports: 
3

Cases:
Case #33 - 2
Case #32 - 1

Categories:
User Experience - 2
User Error - 1

我正在寻找有关如何解决此问题的任何建议。我正在使用和学习 Javascript/HTML(和 jQuery),但如果这些工具更合适,我愿意使用 PHP、SQL 等。

我正在考虑将表值传递给数组,然后使用 for 循环并regexes计算唯一值,但我不确定这是否是最好的方法。

编辑

我没有明确说明的另一个细节是,在将用户输入数据(即制表符分隔的文本)转换为表格之前,我可以访问它。因此,如果在将其转换为表格之前计算有问题的值会更容易,那么请告诉我。

4

1 回答 1

2

就 PHP 而言,您可以将表格 HTML 存储到字符串中并将其加载到 DOM 解析器中。

http://simplehtmldom.sourceforge.net/

这是我们在大多数涉及页面抓取的项目中使用的,尽管它同样适用于使用它们的函数从字符串中解析 HTML:

$html = str_get_html($yourHtmlString);

然后您可以遍历每个tr,然后您可以从那里查看每个td以添加到您的计数中。

即要获得第三行的类别,您将使用:

$html->find("table", 0)->find("tr", 2)->find("td", 4)->plaintext;

您可以像这样循环遍历表格:

$reportCount = 0;
$reportCases = array();
foreach ($html->find("table", 0)->find("tr") as $tableRow) {
    $reportCount++; 
    $reportCases[] = $tableRow->find("td", 1)->plaintext;
}

等等,当然也存储所有其他必要的数据,然后根据需要将其格式化为表格输出。

于 2013-04-25T05:48:44.227 回答