Leerzeichen im Quelltext

Das Forum soll der Ablage von Lösungen für immer wieder auftauchende Problemstellungen dienen. // This forum contains solutions to problems that frequently occur.
Antworten
Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Leerzeichen im Quelltext

Beitrag von dr.e. » 31.10.2009, 19:59:56

Hallo zusammen,

Thalo hat mich per PN kürzlich angesprochen, warum im Quelltext immer wieder unnötige Leerzeilen und Leerzeichen auftauchen:
Die Taglibs die nicht direkt etwas mit der Ausgabe zutun haben (wie controller hinzufügen, ..) verursachen im Quellcode dennoch unschöne Leerräume. Das sieht schnell wie Schweizer-Käse aus. Meinst du, du kannst bis zum kommenden Release mal ein Auge drauf werfen?
Dazu habe ich ihm folgendes geantwortet:
Der Page-Controller parst die Templates wie sie definiert sind. Durch verschiedene Schachtelungen ergeben sich oft mehrere Leerzeichen und Leerzeilen. Diese können im Output-Filter ohne Probleme entfernt werden. Sofern du einen anderen Output-Filter möchtest, kannst du diesen auch selbst erweitern/konfigurieren. Wie das funktioniert ist im Kapitel Filter-Konfiguration beschrieben.

Hier eine allgemeingültige Ersetzung im APF anzubieten funktioniert nicht, denn sonst zerhaut es dir u.U. die Formatierung in <pre>-Tags oder andere Elemente deiner Seite. Aus diesem Grund kann ich das nicht zentral anbieten, sondern nur eine Möglichkeit, das für deinen speziellen Anwendungsfall zu konfigurieren.

Sofern dein Apache mit mod_deflate konfiguriert ist, machen Whitespaces auch nichts aus, da sich diese gut zur Komprimierung eignen.

Sofern dir das etwas nützt: dein Output-Filter kann folgenden Code für die Ersetzung nutzen:

Code: Alles auswählen

public function filter($input){

             $reg = &Singleton::getInstance('Registry');
             $urlRewriting = $reg->retrieve('apf::core','URLRewriting');
             $t = &Singleton::getInstance('BenchmarkTimer');
             if($urlRewriting === true){
                $t->start('LinkRewriting');
                import('core::filter::output','HtmlLinkRewriteFilter');
                $filter = new HtmlLinkRewriteFilter();
                $input = $filter->filter($input);
                $t->stop('LinkRewriting');
              // end if
             }

             // strip empty lines and unnecessary whitespaces!
             $t->start('StripWhitespacesAndNewlines');
             $input = str_replace('  ','',preg_replace('/[\r\n]+/i','',$input));
             $t->stop('StripWhitespacesAndNewlines');
             return $input;
          }
Viele Grüße,
Christian

Benutzeravatar
dr.e.
Administrator
Beiträge: 4527
Registriert: 04.11.2007, 16:13:53

Re: Leerzeichen im Quelltext

Beitrag von dr.e. » 05.12.2009, 16:48:26

Nachtrag:
Ein ausführliches Tutorial zu diesem Thema findet sich im Wiki unter http://wiki.adventure-php-framework.org ... _entfernen.
Viele Grüße,
Christian

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste