[...] statische Webseiten. Durch ein PHP-Script sollen die Daten einer solchen Datei eingelesen und auf einer Seite im Intranet angezeigt werden. Mittels preg_match_all() sollen die Informationen aus den HTML-Dateien ausgelesen werden. [...]
Schade eigentlich; mittels "Lookbehinds" dynamischer Länge liesse sich
die Aufgabenstellung mit einem einzelnen Regulären Ausdruck lösen - dies
wird allerdings von PHP (noch) nicht unterstützt. Innerhalb von PHP
wirst Du deshalb um mindestens zwei Schritte nicht herum kommen: a), die
richtige Tabelle zu identifizieren und b), die gewünschten Daten zu
extrahieren. Beispiel:
$html = '
<table class="negativ">
<tr><td>will ich nicht</td></tr>
</table>
<p>bla bla</p>
<table class="positiv">
<tr><td>will ich haben</td></tr>
<tr><td>will ich auch haben</td></tr>
<tr><td>dito</td></tr>
</table>
';
preg_match(
'-(?><table[^>]+class="positiv"[^>]*+>)(?>\s*<tr>\s*<td>[^<]*</td>\s*</tr>)*-i',
$html,
$tabelle
);
preg_match_all(
'-(?<=<td>)[^<]*(?=</td>)-i',
$tabelle[0],
$werte
);
print_r( $werte );