Robert Hölzl: Schwieriges preg_replace Problem

Hallo,

ich muss PHP Code, der zwischen den Tags [PHP][/PHP] steht durch ein highlighting ersetzen. Den Code rauszufischen und auszugeben ist kein Problem so weit bin ich schon. Das Problem ist jetzt das highlighten. Der Code soll in einer Tabelle ausgegeben werden, diese Tabelle lese ich aus einer externen HTML Datei ein. Mein problem ist es jetzt, den Code zu highlighten bevor er in die Tabelle im HTML Quelltext eingefügt wird. Ich sitze schon seit Stunden daran, aber mir will einfach keine Lösung einfallen. Hoffentlich könnt ihr mir helfen.

Gruß, Robert Hölzl

  1. Hallo Robert Hölzl,

    Ich hoffe ich habe dich da richtig verstanden. SO würde ichs machen:

    $highlightcode = "<span style='color: red'>" . $highlightcode . "</span>";

    Jetzt den Code in die Tabelle einfügen.

    ByBy der Andi

    1. Hallo,

      nein so einfach ist es eben leider nicht. Ich muss mit preg_replace erst mal die einzelnen Vorkommen von [PHP][/PHP] finden. Dann habe ich also mal den PHP Code. Der soll jetzt gehighlighted in einer Tabelle ausgegeben werden. Diese Tabelle steht in einer externen HTML Datei (PHP Code und HTML müssen unbedingt getrennt bleiben). Soweit, dass der PHP Code in der Tabelle ausgegeben wird bin ich schon, nur weiß ich jetzt nicht wie ich den highlighten soll.
      In der PHP Datei steht direkt dieses $1, das von preg_replace durch den PHP Code ersetzt wird und in die HTML Datei kann ich ja keine PHP Funktion schreiben, weil sie nicht ausgeführt wird.
      Mir fällt aber auch keine andere Möglichkeit das zu lösen ein. Die Hauptbedingung ist eigentlich, dass der HTML Code, der um die PHP Code ausgabe drumrum kommt in der HTML Datei bleibt. Also wenn jemand eine Idee hat, ist die immer willkommen :)

      Gruß, Robert Hölzl

  2. Moin moin,
    kann dir vielleicht die Funktion highlight_string() weiterhelfen ?
    http://de.php.net/manual/en/function.highlight-string.php
    Auch mal bei den User-Kommentaren schauen.

    Gruß
    Patrick

    1. Danke, aber so wäre es einfach. Aber ich kann die HTML Tags nicht per PHP ausgeben sondern muss eben eine HTML Datei einlesen und dort den PHP Code einfügen, das ist das schwierige.

      1. hi,

        Danke, aber so wäre es einfach. Aber ich kann die HTML Tags nicht per PHP ausgeben sondern muss eben eine HTML Datei einlesen und dort den PHP Code einfügen, das ist das schwierige.

        und warum hindert dich das daran, die funktion einzusetzen?

        gruss,
        wahsaga