echo $begrüßung;
$zeile=eregi_replace( "<table[^>]*>", "", $zeile);
(Doch nicht) Günni: Du versuchst mit dem Konstrukt [^>]*> die Gierigkeit des Regulären Ausdrucks einzudämmen. Das gelingt dir damit auch, es gibt dafür aber eine bessere Lösung. Zum einen sollte man die Perl-kompatiblen Regular Expression Functions den POSIX-Funktionen vorziehen, da erstere mächtiger und oft auch schneller sind. Damit lässt sich die Genügsamkeit des Suchmusters mit .*?> erreichen (das Fragezeichen machts). Das ergäbe dann
$zeile=preg_replace( "/<table.*?>/i", "", $zeile);
$file=
cat $datei | sed s/'<td[.]\*>'/''/ | sed s/'<tr[.]\*>'/''/ | sed s/'<table[.]\*>'/''/
;
fastix: Ich sehe dich des öfteren solche Shellaufrufslösungen zu posten. Ich sage mir dann immer "Das mag die Aufgabe lösen". (Nachprüfen tue ich das eigentlich nie). Aber auch "Thema verfehlt"-Gedanken kommen mir. Es geht um PHP, und nur wenn es mit PHP wirklich nicht geht, dann sollte man auch so eine Lösung in Erwägung ziehen. "Wirklich nicht geht" möchte ich so verstanden wissen, dass darin auch Performacegründe eingeschlossen sind.
Für jemanden, der zwar PHP kennt aber keine *nix-Shell-Erfahrung hat, wird so eine Lösung schwer wart- und erweiterbar sein. Und sie läuft auch Gefahr an Safe-Mode-Einschränkungen und natürlich auch an nicht vorhandenem Betriebssystem zu scheitern.
Ich bitte dich (selbstverständlich steht dir frei, diese Bitte auszuschlagen), so eine Lösung nur als Zusatz zu einer PHP-nativen-Variante hinzuzufügen.
Alle: Neben der Möglichkeit, eine Datei per file() in ein Array einzulesen, gibt es ab PP 4.3.0 auch die Funktion file_get_contents(). Die leifert einen einzelnen String mit dem Inhalt der Datei zurück. Darauf lassen sich dann auch andere Funktionen zeilenübergreifend anwenden. Bei Perl-Regexp ist dabei noch der Modifizierer m (für multiline) im Anschluss an das Suchmuster anzugeben. Beispielsweise so:
$dateiInhalt = preg_replace( '/<table.*?>/im', '', $dateiInhalt);
Zu beachten ist, dass je nach Größe der Datei auch entsprechend Speicher verbraucht wird, und man dabei an PHPs Speicher-Limit stoßen kann.
echo "$verabschiedung $name";