Php ile bir HTML tablo sütunları saymak

3 Cevap php

Hay Beyler,

i ile temel bir dize bir html tablosu tutar var. Tablo bu gibi görünüyor:

<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>

Nasıl bu tablo kaç sütun belirlemek için PHP kullanmak istiyorsunuz?

Teşekkürler

3 Cevap

<TD> 's substr_count() . If your string contains more than one row, then count <TR> ile' s saymak ve [(4)] {sayısına göre <TD> 'ın toplam sayısını bölmek } 's.

Diğerleri de söylediğim gibi geçerli HTML garantisi var, ve masa eşit uzunlukta satır olması garanti ise, basit dize manipülasyon kullanabilirsiniz. : <tr>, sonra her parça <td> sayısını üzerindeki dize bölmek

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>');
    }
}

Biçimlendirilmiş HTML olasılığı varsa, o zaman <tr> düğümlerini yinelemek, tablo ayrıştırmak için bir HTML çözümleyici kullanın ve türü subnodes saymak <td>.

Here's one HTML parser to consider: http://sourceforge.net/projects/simplehtmldom/

Bu temelde HTML tablodaki sütun sayısını alır simplehtmldom kodu

$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; 
               }

Büyük $ size sütun sayısı verecektir.