Spuki: Quellcode ohne Zeilenumbrüche

Hallo,

ich schreibe per PHP dynamischen Quellcode. Zur besseren Übersicht gliedere ich den Code beim Schreiben recht ordentlich. Dadurch entstehen im generierten Quellcode unschöne und unnütze Zeilenumbrüche!

Ich habe schon entdeckt die ich per trim Leerzeichen aus Variablen entfernen kann, das hilft mir aber nicht wirklich weiter, da ich den dynamischen Quellcode in bestehenden statischen Quellcode schreiben muss/möchte.

Gibt es eine Möglichkeit den Quelltext über PHP in einer einzigen HTML Codezeite auszugeben (Wobei ich nicht weiß ob das Sinn macht)? Oder besser komfortabel die Zeilenumbrüche im Quellcode zu entfernen?

Mit der Bitte um Vorschläge und Danke

Grüße
Spucki

  1. Hi!

    ich schreibe per PHP dynamischen Quellcode. Zur besseren Übersicht gliedere ich den Code beim Schreiben recht ordentlich. Dadurch entstehen im generierten Quellcode unschöne und unnütze Zeilenumbrüche!

    Nicht signifikaner Whitespace in HTML-Dokumenten ist völlig belanglos für den Browser. Lediglich das Lesen für Menschen kann dadurch beeinträchtigt werden und damit wird es schwieriger eventuelle Fehler zu suchen.

    Gibt es eine Möglichkeit den Quelltext über PHP in einer einzigen HTML Codezeite auszugeben (Wobei ich nicht weiß ob das Sinn macht)? Oder besser komfortabel die Zeilenumbrüche im Quellcode zu entfernen?

    Es gibt String-Funktionen zum Suchen und Ersetzen. Solange die Zeilenumbrüche und Einrückungen nicht signifikant sind, interessiert es mich weniger, ob sie nun perfekt gesetzt sind oder nicht.

    Lo!

  2. Hallo,

    mit Tidy HTML kannst du den ausgegebenen Quelltext sowohl eingerückt als auch möglichst platzsparend ausgeben.

    Ist nur fraglich, ob sich der zusätzliche Overhead serverseitig lohnt.

    Viele Grüße Novi

    --
    "(...) deshalb mag ich Binärtechnik. Da gibt es nur drei Zustände: High, Low und Kaputt." (Wau Holland)
  3. Darauf ist bisher noch keiner drauf eingegangen.

    (Wobei ich nicht weiß ob das Sinn macht)

    Den macht es nicht. Warum denkst du das wäre sinnvoll? Um irgendwas zu verbergen (durch erschwerte Lesbarkeit) ist es ziemlich nutzlos. Ein anderer Grund fällt mir nicht ein, außer halt ein paar Bytes bei der Übertragung zu sparen. Aber auch das dürfte nicht wirklich ins Gewicht fallen.

  4. @@Spuki:

    nuqneH

    ich schreibe per PHP dynamischen Quellcode. Zur besseren Übersicht gliedere ich den Code beim Schreiben recht ordentlich. Dadurch entstehen im generierten Quellcode unschöne und unnütze Zeilenumbrüche!

    Warum? Vermeide dies!

    Mit der Bitte um Vorschläge

    Wenn du etwas Code gezeigt hättest …

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
  5. Würde mich interessieren ob man sowas entfernen kann.

    Ich schreibe mein Sql Anweisungen z.B so:

      
    $sql = select Bla,  
                  Blub  
             from Tabelle  
            where TableId = 2  
              and NOW() between Edate and BDate;  
    
    

    Der Code ist dadurch viel lesbarer, wenn nun aber ein Fehler auftaucht, dann hab ich in der Fehlermeldung auch Zeilenumbrüche drinnen.
    Die ich auch gerne raushaben möchte.
    String Funktionen hab ich mir schon angeschaut, aber nichts gefunden.

    Danke für Vorschläge.

    1. Hi,

      Ich schreibe mein Sql Anweisungen z.B so:

      $sql = select Bla,
                    Blub
               from Tabelle
              where TableId = 2
                and NOW() between Edate and BDate;

      
      >   
      > Der Code ist dadurch viel lesbarer, wenn nun aber ein Fehler auftaucht, dann hab ich in der Fehlermeldung auch Zeilenumbrüche drinnen.  
        
      Noch besser: Die Datenbank kann dir dann auch sagen, in (oder um) \*welcher\* Zeile sich der Fehler befindet - bei einzeiligen Statements bekommt man immer nur “on line 1” gemeldet, und das ist weniger hilfreich.  
        
      
      > Die ich auch gerne raushaben möchte.  
      > String Funktionen hab ich mir schon angeschaut, aber nichts gefunden.  
        
      Und nicht mal str\_replace hast du dort finden können ...? Dann musst du aber arg „geflasht“ sein ...  
        
      MfG ChrisB  
        
      
      -- 
      RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
      
      1. Noch besser: Die Datenbank kann dir dann auch sagen, in (oder um) *welcher* Zeile sich der Fehler befindet - bei einzeiligen Statements bekommt man immer nur “on line 1” gemeldet, und das ist weniger hilfreich.

        Ja aber wenn man das Statement 1 Zeilig macht bekommt man auch nur "on line 1 geliefert".
        Hat nur leserlich vorteile. (für mich halt)

        Und nicht mal str_replace hast du dort finden können ...? Dann musst du aber arg „geflasht“ sein ...

        Doch ich kenne schon str_replace, aber wie sagt man dem was ein Zeilenumbruch ist?

        Danke Flash

        1. Mahlzeit Flash,

          Doch ich kenne schon str_replace, aber wie sagt man dem was ein Zeilenumbruch ist?

          Ganz einfach: man erkundigt sich, woraus ein Zeilenumbruch besteht (aus welchen Zeichen mit welchen ASCII-Codes) und nutzt dieses Wissen anschließend ...

          MfG,
          EKKi

          --
          sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
          1. Hi!

            Doch ich kenne schon str_replace, aber wie sagt man dem was ein Zeilenumbruch ist?
            Ganz einfach: man erkundigt sich, woraus ein Zeilenumbruch besteht (aus welchen Zeichen mit welchen ASCII-Codes) und nutzt dieses Wissen anschließend ...

            Damit allein ist es ja noch nicht getan. Schon auf diese Frage bekommt man zwei aktuelle und eine veraltete Antwort. Damit weiß man nicht zwingend, was man nun tatsächlich vorliegen hat. Und wenn man das herausgefunden hat, muss man noch wissen, wie man es notiert.

            Lo!

        2. Hi!

          Doch ich kenne schon str_replace, aber wie sagt man dem was ein Zeilenumbruch ist?

          Es gibt die Konstante PHP_EOL, die systemabhängig den passenden Wert für einen Zeilenumbruch enthält. Wenn du aber selbst die Zeilenumbruchszeichen festlegen willst, dann kannst du das bei den Grundlagen der String-Notation nachschlagen. Wenn du nicht weißt, welche(s) Zeichen ein anderes System als Zeilenumbruch verwendet, kannst du das mit bin2hex() herausfinden. Auch urlencode() lässt sich wunderbar dafür missbrauchen und erzeugt gleich noch eine einfacher lesbare Version als bin2hex().

          Lo!

          1. Moin!

            Es gibt die Konstante PHP_EOL, die systemabhängig den passenden Wert für einen Zeilenumbruch enthält.

            Nicht so wirklich. :)

            PHP_EOL enthält das (oder die) Zeilenendezeichen des Systems, auf dem das Skript gerade läuft.

            Das hilft beim Entfernen von Zeilenumbrüchen, die im PHP-Quelltext stehen, aber nicht, denn diese Zeilenumbrüche basieren auf dem System, auf dem das Skript geschrieben wurde. Und noch vorrangig vor dieser Einstellung auf der Einstellung des Editors, mit dem das Skript geschrieben wurde.

            Und auch bei anderen Verwendungen hilft PHP_EOL eigentlich eher selten: Der Zeilenumbruch z.B. im SMTP-Mailprotokoll ist festgelegt, unabhängig vom System. Mailende PHP-Skripte müssen sich also daran halten.

            Das einzige Szenario, was ich mir vorstellen kann für eine sinnvolle Verwendung von PHP_EOL ist, wenn man eine Textdatei generieren will, die auf demselben System anderweitig Verwendung finden soll. Allerdings setzt sich durchaus der Trend durch, auch unter Windows nur noch Linefeed als Zeilenendezeichen zu verwenden. Eigentlich jeder vernünftige Editor kann damit umgehen.

            - Sven Rautenberg

            1. Hi!

              Es gibt die Konstante PHP_EOL, die systemabhängig den passenden Wert für einen Zeilenumbruch enthält.

              Nicht so wirklich. :)
              PHP_EOL enthält das (oder die) Zeilenendezeichen des Systems, auf dem das Skript gerade läuft.

              Genau das hab ich doch gesagt. Okax, "passend" bezieht sich auf das System und nicht auf das Problem. Aber dafür schrub ich ja noch den Rest, den du im Zitat weggelassen hast.

              Und auch bei anderen Verwendungen hilft PHP_EOL eigentlich eher selten: Der Zeilenumbruch z.B. im SMTP-Mailprotokoll ist festgelegt, unabhängig vom System. Mailende PHP-Skripte müssen sich also daran halten.

              Ja, wenn sie die Mail direkt am Ziel oder einem Relay-SMTP-Server abliefern. Üblicherweise überlassen sie diese Aufgabe aber einem Mail Transfer Agent, der meist auch noch auf dem selben System arbeitet. Und der hat dann die Aufgabe, die systemspezifischen Zeilenendezeichen in das vom Protokoll festgelegte Format zu bringen.

              Es ist jedenfalls vergebene Liebesmüh, in einem PHP-Script SMTP-korrekte Zeilenendezeichen zu erstellen, wenn mail() mit dem Senden beauftragt wird. Denn diese Funktion verwendet intern für das Zusammenfügen der Headerzeilen und dem Mail-Text das einfache \n.

              Lo!

        3. Hi,

          bei einzeiligen Statements bekommt man immer nur “on line 1” gemeldet, und das ist weniger hilfreich.

          Ja aber wenn man das Statement 1 Zeilig macht bekommt man auch nur "on line 1 geliefert".

          Wieso beginnst du einen Satz, der nur noch mal einen Teil dessen, was ich zuvor sagte wiederholt, mit „ja aber“ ...?

          Doch ich kenne schon str_replace, aber wie sagt man dem was ein Zeilenumbruch ist?

          http://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double

          MfG ChrisB

          --
          RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?
          1. Hab mich verlesen sry.

        4. Ja aber wenn man das Statement 1 Zeilig macht bekommt man auch nur "on line 1 geliefert".
          Hat nur leserlich vorteile. (für mich halt)

          Wenn du die Fehler rausmachst, bekommst du gar keine Meldung mehr geliefert, das ist noch besser ;-)

          Soll heißen, nachdem diese Art von Fehler nicht regelmäßig auftreten dürften wenn man annähernd sauber testet, wärs mir die Arbeit ehrlich gesagt nicht wert.
          Da musst du ja jedes Statement vorher umsetzen. Dann hast du mal ein Statement mit Zeilenumbrüchen in den Daten und haust dir die auch mit raus...