Hallo Sven,
Ich möchte einfach aus der html-Datei alles Unnötige
entfernen, um die überbleibende Tabellenkonstruktion
problemlos parsen zu können.
… alles zwischen den Tabletags rausziehen. Leider
enthält die Datei weitere Tabellen, so daß ich es eingrenzen muß.
Dies funktioniert (aus meiner Sicht) am Besten mit dem
„MSProjectTemplate_AssignmentTable“ -Kommentar.
…
Wie verhält sich denn sowas? ==>
preg_replace(’/.+?MSProjectTemplate_AssignmentTable–>/s’,"");
Läuft leider genausolange.
OK, was ist das denn für ein Server?
Das Problem ist wohl, daß wenn ich mit greedy suche die kpl.
Datei erkannt wird und danach Rückwärts bis zu
gelaufen wird. Dadurch erhöht sich die
Suchzeit sehr stark.
Ohne greedy muß jedesmal kpl. mit verglichen
werden, wodurch sich die Zeit nätürlich auch extrem
verlängert.
Ohne ‚greedy‘ sucht (imho) die PCRE-NFA von PHP
einfach den String ‚MSProjectTemplate_AssignmentTable‘
und sonst nichts (dachte ich).
Ich vermute, es liegt hier eine Beschränkung
des PHP-Replace vor. Versuch doch mal „andersrum“:
<?php echo "toc
\n";
$stuff = file\_get\_contents('office.html');
echo strlen($stuff) . " toc
\n";
preg\_match('/MSProjectTemplate\_AssignmentTable--\> (.\*)\z/xs', $stuff, $match);
$text = $match[1];
echo strlen($text) . ', ' . strlen($stuff) . " toc
\n";
?\>
d.h. einen Match statt eines Replace. In
diesen Match könntest Du auch die Suche
nach den Tabellen einbauen.
Grüße
CMБ