【发布时间】:2013-04-03 21:09:51
【问题描述】:
我有一个表格,想获得一个二维数组(每行和每行的单元格值)。 我知道我必须使用 preg_match 但我不擅长创建模式。
你能帮帮我吗?会非常好!!!!
谢谢!!!
这是我的表结构:
<table class="maintable">
<tr>
<td class="headtable">
Tag
</td>
<td class="headtable">
Klasse
</td>
<td class="headtable">
Zeit
</td>
<td class="headtable">
Pos
</td>
<td class="headtable">
Lehrer
</td>
<td class="headtable">
Fach
</td>
<td class="headtable">
Raum
</td>
<td class="headtable">
Info
</td>
<td class="headtable">
Art
</td>
</tr>
<tr class="evenrow">
<td class="evencell">
Mo
</td>
<td class="evencell">
05a
</td>
<td class="evencell">
09:45
</td>
<td class="evencell">
3. Stunde
</td>
<td class="evencell">
+TIN (KOL)
</td>
<td class="evencell">
In En
</td>
<td class="evencell">
223
</td>
<td class="evencell">
</td>
<td class="evencell">
Geändert
</td>
</tr>
<tr class="oddrow">
<td class="oddcell">
 
</td>
<td class="oddcell">
 
</td>
<td class="oddcell">
10:30
</td>
<td class="oddcell">
4. Stunde
</td>
<td class="oddcell">
+TIN (KOL)
</td>
<td class="oddcell">
In En
</td>
<td class="oddcell">
223
</td>
<td class="oddcell">
</td>
<td class="oddcell">
Geändert
</td>
</tr>
<tr class="evenrow">
<td class="evencell">
 
</td>
<td class="evencell">
 
</td>
<td class="evencell">
13:45
</td>
<td class="evencell">
8. Stunde
</td>
<td class="evencell">
+NUS (CRI), WIK
</td>
<td class="evencell">
Comp
</td>
<td class="evencell">
022 INF2, 021 INF1
</td>
<td class="evencell">
</td>
<td class="evencell">
Geändert
</td>
</tr>
<tr class="oddrow">
<td class="oddcell">
 
</td>
<td class="oddcell">
05b
</td>
<td class="oddcell">
07:55
</td>
<td class="oddcell">
1. Stunde
</td>
<td class="oddcell">
+WEP (SMA)
</td>
<td class="oddcell">
EN
</td>
<td class="oddcell">
121
</td>
<td class="oddcell">
</td>
<td class="oddcell">
Geändert
</td>
</tr>
</table>
【问题讨论】:
-
不,您不需要使用 preg_match。 不要使用正则表达式解析 HTML。您无法使用正则表达式可靠地解析 HTML,并且您将面临悲伤和挫败感。一旦 HTML 与您的期望发生变化,您的代码就会被破坏。有关如何使用已经编写、测试和调试的 PHP 模块正确解析 HTML 的示例,请参阅 htmlparsing.com/php。
标签: php html-parsing preg-match-all