Stefan Einspender: aut. Löschen von Zeilenumbrüchen und Blanks

Hallo Forumsleser,

ich benötige eine Lösung, die sämtliche Zeilenumbrüche und Leerzeichen
zwischen > und < (also zwischen direkt den aufeinanderfolgenden Tags)
entfernt, um so den Speicherplatz möglichst gering zu halten.
Der Hintergrund der Sache liegt in einem (kostenlosen) Gästebuch von
Spin begründet (neue Variante unter http://www.guestbook.de/),
wo offensichtlich die Größe der Vorlage auf genau 4.000 Byte begrenzt
ist, und ich so zu jeder nur denkbaren Optimierung gezwungen bin ;)
Natürlich kann man die ganze Sache auch per Hand erledigen, aber ein
kleines Tool wäre schon ganz nett, damit ich es _direkt_ vor dem Up-
load der GB-Vorlage erledigen kann (wenn man auf der HD eine HTML-File,
in einer einzigen Zeile geschrieben, abgespeichert hat, ist es auch
nicht unbedingt die optimale Lösung *g*).

Ich weiss nicht genau, ob die Sache mit Perl zu lösen ist, oder ob es in
einem HTML-Editor (Text) diese Möglichkeit schon standardmäßig eingebaut
ist., der Link zu eben diesen Programm würde mir da natürlich ausreichen.

vielen dank+gruesse, stefan einspender

ps:wenn ich ein css-file auf einer anderen domain referenziere, dann ist
der netscape dazu nicht geeignet?! (da gibt es ja schon bei einem Ver-
zeichniswechsel Probleme ... *g*)

  1. Hallo Forumsleser,

    ich benötige eine Lösung ...
    kleines Tool wäre schon ganz nett

    Nochmal zu der Sache, ich habe gerade festgestellt, dass mein Posting etwas nach "ichwillwasbestellen" klingt, es sollte aber mehr heissen, dass ich keinen Ansatz weiss und vielleicht jemand hier eine schnelle Lösung dieses imho am ende doch ganz simplen problemes weiss.

    danke für verständnis, viele gruesse, stefan einspender

  2. hi!

    ich benötige eine Lösung, die sämtliche Zeilenumbrüche und Leerzeichen
    zwischen > und < (also zwischen direkt den aufeinanderfolgenden Tags)
    entfernt, um so den Speicherplatz möglichst gering zu halten.

    === cut ===
    #!/usr/bin/perl

    $filename = shift;

    open INFILE, "<$filename" or die "File not found.";
    open OUTFILE, ">$filename.out";

    for (<INFILE>)
    {
      s/\n//g;
      s/> +</></g;
      print OUTFILE $_;
    }

    close OUTFILE;
    close INFILE;
    === cut ===

    Eventuell mehrmals über ein File laufen zu lassen, könnte bessere Ergebnisse bringen. Erster und einziger Parameter beim Aufurf ist der Dateiname.

    bye, Frank!

    1. Hi Frank,

      danke erstmal, funktioniert wunderbar, der entstandene code wird offenbar ohne probleme verarbeitet, zu sehen unter http://two.guestbook.de/gb.cgi?gid=301676&prot=tqjliu, das Template (die Vorlage für das Gästebuch, welche das Prog gekürzt hat) findet ihr unter http://www.favicon.de/guestbook.html, wird allerdings u.U. unschön/nicht angezeigt, da es eben nur eine (unvollkommene) Vorlage ist!

      Eventuell mehrmals über ein File laufen zu lassen, könnte bessere Ergebnisse bringen. Erster und einziger Parameter beim Aufurf ist der Dateiname.

      IMHO bringt es nichts, ich habe nach einmaligen Versuch sofort ein einwandfreies Ergebnis erhalten :)
      Nur nach Sachen wie CSS-Definition sollte man nach jeder Zeile ein Blank eingebaut haben, sonst steht dann".... TD.favicon { background-color:#FFFFFF; }HR { color:#E0E0E0; }..." alles direkt hintereinander, allerdings bei mir zu keinerlei Problemen im Browser führt.
      Apropos, wenn bei jemand das Gästebuch etwas "eigenartig" angezeigt wird, eine kurze e-Mail wäre nett, dann muss ich die StyleSheets eben doch manuell in einzelne Zeilen reinschreiben.

      cu frank, danke, stefan einspender

      ps: muss ich wohl bald <B>Frank Schönmann</B> auf die seite schreiben *g*

      1. hi!

        Eventuell mehrmals über ein File laufen zu lassen, könnte bessere Ergebnisse bringen. > IMHO bringt es nichts, ich habe nach einmaligen Versuch sofort ein einwandfreies Ergebnis
        erhalten :)

        Wenn eine Zeile mit einem > endet, die nächste Zeile mit einem < anfängt, und hinter dem > noch einige Leerzeichen sind, werden diese Leerzeichen erst beim zweiten Aufruf gelöscht. Das ist der einzige Fall, in dem es etwas bringt :)

        bye, Frank!