Tobi: Bereich in Datei ersetzen

Hallo Zusammen,

folgendes Problem habe ich gerade.
Mit PHP lese ich uf einem Webserver diverse Datein ein und
will dort einen Bereich ersetzen.
Sprich: Alle Zeilen von <!--START--> bis <!--ENDE--> sollen
ausgestauscht werden.

Die Anzahl der Zeilen ist immer unterschiedlich, nur START und ENDE
Tag stehen immer an Anfang bzw. Ende.

Das Einlesen der Inhalte ist kein Thema. Aber das VON...BIS Ersetzen
bekomm ich nicht hin.

Besten Dank im Voraus!

Tobi

  1. Moin,

    folgendes Problem habe ich gerade.
    Mit PHP lese ich uf einem Webserver diverse Datein ein und
    will dort einen Bereich ersetzen.
    Sprich: Alle Zeilen von <!--START--> bis <!--ENDE--> sollen
    ausgestauscht werden.

    wie liest du die Datei denn ein?
    Wenn du z.B. die Daten in ein array einliest, könntest du ja die Position von deiner Start- und Ende-Marke ganze einfach mit einer Schleife ermitteln.
    Dann könntest du alles was davor ist unverändert zurückschreiben, dann deinen geänderten Text und dann alles ab der Ende-Marke wieder unverändert zurückschreiben.

    MfG,
      Juan

    1. Moin,

      folgendes Problem habe ich gerade.
      Mit PHP lese ich uf einem Webserver diverse Datein ein und
      will dort einen Bereich ersetzen.
      Sprich: Alle Zeilen von <!--START--> bis <!--ENDE--> sollen
      ausgestauscht werden.

      wie liest du die Datei denn ein?

      Hi,

      momentyn lese ich die per fread() in eine Variable.
      Wie bekäme ich die in ein Array?

      cu
      Tobi

      1. Moin,

        momentyn lese ich die per fread() in eine Variable.
        Wie bekäme ich die in ein Array?

        du könntest sie mit file() komplett in ein Array einlesen.

        MfG,
          Juan

  2. Hello,

    Sprich: Alle Zeilen von <!--START--> bis <!--ENDE--> sollen
    ausgestauscht werden.

    $fh = fopen($dateiname,'rb+');
    flock($fh,LOCK_EX);
    $input = fread($fh, $filesize);
    $_anfang = explode('<!--START-->',$input);
    $_ende   = explode('<!--ENDE-->',$_anfang[1]);
    $output  = $_anfang[0].$_ende[1];
    fwrite($fh,$output);
    fclose($fh);

    Die notwenigen Prüfungen, ob die Datei zu öffnen war, und $_anfang und $_ende je zwei Elemente enthalten, musst Du bitte selber einbauen.

    Harzliche Grüße vom Berg
    http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau