blö: HTML-Tabelle mit RegExp auslesen

Beitrag lesen

[...] 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 );