[英]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.