簡體   English   中英

使用PHP計算HTML表中的列

[英]Count columns in a HTML table with PHP

我有一個基本的字符串,包含一個html表。 該表如下所示:

<TR>
    <TD>asdf, dfg</TD><TD>0915</TD><TD>0945</TD><TD></TD><TD>15</TD><TD>45</TD><TD></TD><TD>1315</TD>
</TR>
<TR>
    <TD>asdf, dfg</TD><TD>0915</TD><TD>0945</TD><TD></TD><TD>15</TD><TD>45</TD><TD></TD><TD>1315</TD>
</TR>
<TR>
    <TD>asdf, dfg</TD><TD>0915</TD><TD>0945</TD><TD></TD><TD>15</TD><TD>45</TD><TD></TD><TD>1315</TD>
</TR>
<TR>
    <TD>asdf, dfg</TD><TD>0915</TD><TD>0945</TD><TD></TD><TD>15</TD><TD>45</TD><TD></TD><TD>1315</TD>
</TR>       

我如何使用PHP來確定此表有多少列?

正如其他人所提到的,如果你保證有效的HTML,並且保證表有相同的長度行,你可以使用簡單的字符串操作。 拆分<tr>上的字符串,然后計算每件中<td>的數量:

function count_table_columns($html) {
    $html = strtolower($html);
    $rows = split('<tr>', $html);
    foreach($rows as $row) {
        if(!trim($row)) { continue; }
        return substr_count($row, '<td>');
    }
}

如果HTML格式錯誤,請使用HTML解析器解析表,然后遍歷<tr>節點,並計算<td>類型的子節點。

這是一個要考慮的HTML解析器: http//sourceforge.net/projects/simplehtmldom/

使用substr_count()計算<TD> 如果您的字符串包含多行,則計算<TR>並將<TD>的總數除以<TR>的數量。

這是simplehtmldom代碼,基本上獲取HTML表中的列數

$table = $html->find('table',0);

foreach($table->find('tr') as $tr)
               {
                   $c=0;
                   foreach($tr->find('td') as $td) $c++;    
                   if( $c>$largest OR !isset($largest) ) $largest = $c; 
               }

$ maximum會給你列數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM