fastix®: Wie definiert php eine Zeile?

Beitrag lesen

Moin!

Hi,

ich möchte über
-------------schnipp--------------------------------------
$inhalt = file($datei);
foreach ($inhalt as $zeile)
{
$zeile=eregi_replace( "<table[^>]*>", "", $zeile);
$zeile=eregi_replace( "<tr[^>]*>", "", $zeile);
usw.
echo ("$zeile");
}
-----------------schnapp---------------------------------

in einer oder mehreren Dateien Textpassagen verändern.
Was macht php, wenn eine der gesuchten Textpassagen über 2 Zeilen geht?

Das kann es nicht, weil $inhalt ein Array ist. Du untersuchst dessen Elemente und folglich die Zeilen Deiner Datei.

Oder akzeptiert php überhaupt keinen autom. Zeilenumbruch und sieht alles als eine Zeile an, bin zum "manuellen Return"?

Zumindest den Standard-Zeilenumbruch mit \r\n und \n erkennt es sehr gut.

Zusatzfrage: Ist das eine gängige Lösung meines Problems oder geht das auch schneller oder effizienter?

$file=cat $datei | sed s/'<td[.]\*>'/''/ | sed s/'<tr[.]\*>'/''/ | sed s/'<table[.]\*>'/''/;

würde auf einem *nix-System die Datei in $file (Kein Array!) einlesen und hier die beginnenden Tags löschen. SED ist ein Zeichenstromeditor und als solcher schnell und elegant. Er ist auf den  allermeisten *nix Systemen vorhanden und rasend schnell. cat dient zur Ausgabe die hier durch mehrere (theoretisch ungenzt viele) Pipes (Rohre) jeweils zum sed geschickt und gefiltert wird.

Vor dem cat und dem Semikolon stehen Backticks Franzosen nennen sowas accent.

Günni

??? Günni ist momentan kein positiv besetzter Spitzname (google mal nach "FvG")

MFFG (Mit freundlich- friedfertigem Grinsen)

fastix®

--
Als Freiberufler bin ich immer auf der Suche nach Aufträgen: Schulungen, Seminare, Training, Development