meherzeiligen HTML-Kommentar entfernen
Peter
- php
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 :-)
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ü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
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
Hello,
Gründe, einen Kommentar einzubauen:
- 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)
- 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
OK. Dann selber parsen (z.B. mit file_get_contents) und <!-- ... --> und alles dazwischen rausfischen.
Der Yeti
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 :-)
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
...Danke für Eure Antworten!
http://de3.php.net/file_get_contents werde ich mal testen.
Gruß Peter :-)
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