Peter: meherzeiligen HTML-Kommentar entfernen

Hallo *,

ich wundere mich gerade wie ich einen mehrzeiligen HTML-Kommentar aus einem include-File herausbekomme. Geht das mit dem include Kommando überhaupt?

Ein entsprechendes include-File hätte dann einen Kommentar der etwa so aussieht:

<!--
text
text
text
-->

Oder muss ich das File mit fileopen usw. öfnen und dann entsprechend bearbeiten. Hat das viellecht schon jemand gemacht und kann mir einen Tipp geben, wie das am besten funktioniert.

Beim Herausnehmen das Kommentars wäre es mir ein großes Anliegen, dass die ursprüngliche Formatierung behalten bleibt. Ist das möglich?

Ich muss gestehen, das ich noch keinerlei Tests gemacht habe. Darum frage ich vieleicht etwas unbeholfen.

Gruß und Danke
Peter :-)

  1. Hello,

    Ein entsprechendes include-File hätte dann einen Kommentar der etwa so aussieht:

    <!--
    text
    text
    text
    -->

    Man kann da nun mit Kanonen auf Spatzen schießen oder aber versuchen, diesen Kommentar mittels mehrfachem explode zu extrahieren.

    Das Einlesen mit include ist definitiv falsch. Man könnte file_get_contents() benutzen, wenn garantiert sit, dass das File nicht geändert wird. Erweitern durch Anhängen (append) wäre aber erlaubt.

    Sonst muss man wirklich eine Handle-Funktion benutzen und auch mit LOCKING arbeiten.

    Explode hat aber den Nachteil dass auch an einer Stelle wie

    <input type="text" value="<!-- Hier steht der M&uuml;ll -->" ...>

    getrennt werden würde. Ob das "<" nun innerhalb der Häkchen eines Values erlaubt ist, darüber gibt es hier sehr unterschiedliche Meinungen.

    Man müsste sich daher also besser einen Parser nach der polnischen Notation aufbauen. Es werden alle HTML-eigenen Zeichen als Schaltzeichen benutzt und gezählt. Esst wenn der Stapel wieder auf 0 steht, hat man plain-text.

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

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
  2. Gründe, einen Kommentar einzubauen:
    1. Man will den Quellcode kommentieren, um ihn für nachfolgende Programmierer oder sich selbst nach Jahren noch verständlich zu halten (dann darf er nicht im Output erscheinen)
    2. Man will debuggen

    Jetzt gibt es unter PHP entweder die Möglichkeit, mit // oder /* */ Kommentare einzufügen oder in HTML mit <!-- -->, diese erscheinen allerdings im Quelltext der HTML-Seite.
    Wenn du das nicht willst, musst du PHP-Kommentare verwenden.

    Der Yeti

    --
    Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
    Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
    Und bin so klug als wie zuvor!
    1. Hello,

      Gründe, einen Kommentar einzubauen:

      1. Man will den Quellcode kommentieren, um ihn für nachfolgende Programmierer oder sich selbst nach Jahren noch verständlich zu halten (dann darf er nicht im Output erscheinen)
      2. Man will debuggen

      3. Man will per PHP mit "hard coded" HTML-Files arbeiten, also z.B. ein Gästebuch hardcoded speichern, aber trotzdem Satztrenner zur Verfügung haben, um es mittels PHP wieder bearbeiten zu können. Dann muss man nur dafür Sorge tragen, dass diese Trenner nicht auch im Datenstrom erhalten bleiben.

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

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
      1. OK. Dann selber parsen (z.B. mit file_get_contents) und <!-- ... --> und alles dazwischen rausfischen.
        Der Yeti

        --
        Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
        Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
        Und bin so klug als wie zuvor!
  3. Um Missverständnisse aus dem weg zu räumen. Die Kommentare sollen nicht permanent entfernt werden sondern nur beim Aufruf der entsprechenden Seite über einen Browser.

    Ein PHP-Script sollte die Kommentare nur ausfiltern wenn es einen request auf die Seite gibt. Da (in diesem Fall) die Kommentare nur mich als Entwickler der Seiten wichtig sind und sie für den Betrachter der Seite eh nicht zu sehen sind, wollte ich sie ausfiltern. Das eigentliche Feil ist statisch und bleibt immer unangetastet, es wird nicht bearbeitet.

    Da ich wie vermutet die Kommentare nicht mit include herausfiltern kann muss ich wohl mit fileopen, fileread etc. das File öffnen und dann bearbeiten und an den requestenden Browser senden, richtig?

    Gruß Peter :-)

    1. Da ich wie vermutet die Kommentare nicht mit include herausfiltern kann muss ich wohl mit fileopen, fileread etc. das File öffnen und dann bearbeiten und an den requestenden Browser senden, richtig?

      Richtig. Aber eine noch schönere Funktion ist http://php.net/file_get_contents.

      Der Yeti

      --
      Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
      Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
      Und bin so klug als wie zuvor!
  4. ...Danke für Eure Antworten!

    http://de3.php.net/file_get_contents werde ich mal testen.

    Gruß Peter :-)

    1. Und man beachte auch http://force-elite.com/~chip/projects/php/benchmarks/file-vs-fgets/ (außer den Kraftausdrücken ;-) )

      Man sollte eigentlich meinen "bruuaaaah, eine ganze Datei in _einen_ String???"... aber es ist echt viel einfacher. Hab früher mit file gearbeitet. Nie wieder!

      Der Yeti

      --
      Habe nun, ach! WInfo, BWL, und Mathe, Und leider auch Info!
      Durchaus studiert, mit heißem Bemühn. Da steh' ich nun, ich armer Thor!
      Und bin so klug als wie zuvor!