Sven Mörs: <pre> </pre>

Hallo,

ich habe ein großes Problem mit <pre> un zwar:

Ich mache zur Zeit eine Delphi-Website. Speicher Quellcodes in einer Datenbank(mysql), und lese die mit einem PHP-Script aus. Den Delphi-Quellcode lasse ich dann in <pre> </pre> anzeigen. Wenn der Text (Beschreibung) länger ist als meine Tabelle, wird die Tabelle automatisch vergrößert, obwohl ich die Tabelle einen festen Wert gegeben habe. Gibt es da vielleicht einen Wert den ich <pre> übergeben kann, dass er automatisch einen Zeilenumbruch macht?

Wenn nicht, wie kann ich das am besten dann machen mit dem Quellcode anzeigen, ohne <br> beim hinzufügen der DB eingeben zu müssen?

Vielen Dank schonmal!

MFG
Sven!

  1. Hi Sven,

    Ich mache zur Zeit eine Delphi-Website. Speicher Quellcodes in einer Datenbank(mysql), und lese die mit einem PHP-Script aus. Den Delphi-Quellcode lasse ich dann in <pre> </pre> anzeigen. Wenn der Text (Beschreibung) länger ist als meine Tabelle, wird die Tabelle automatisch vergrößert, obwohl ich die Tabelle einen festen Wert gegeben habe. Gibt es da vielleicht einen Wert den ich <pre> übergeben kann, dass er automatisch einen Zeilenumbruch macht?

    Suche in SelfHTML, Kapitel CSS nach dem Stichwort overflow.

    Wenn nicht, wie kann ich das am besten dann machen mit dem Quellcode anzeigen, ohne <br> beim hinzufügen der DB eingeben zu müssen?

    Kannst, wenn Daten in der DB mit \n vorliegen die Funkion nl2br() verwenden. => http://de.php.net/manual/de/function.nl2br.php, wenn ich dich nicht falsch verstaden habe.

    MfG, Dennis.

    --
    Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
    Zufällige Hinweise:
    ------------------------
    Sinnvolles Zitieren: Man zitiert nur Teilsaetze des Vorposters
    auf die man sich bezieht! Nicht einfach alles.
    1. Hi Dennis,

      Gibt es da vielleicht einen Wert den ich <pre> übergeben kann, dass er automatisch einen Zeilenumbruch macht?

      Suche in SelfHTML, Kapitel CSS nach dem Stichwort overflow.

      http://de.selfhtml.org/css/eigenschaften/positionierung.htm#overflow
       http://www.w3.org/TR/CSS21/visufx.html#propdef-overflow

      das bewirkt aber etwas anderes. Gesucht war vermutlich white-space:

      http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#white_space
       http://www.w3.org/TR/CSS21/text.html#propdef-white-space

      Für den schnellen Link ... siehe Signatur.

      Grüße,
       Roland

      1. nabend

        Es ist nicht mehr sehr erwünscht in html 4.0
        Aber je nach Anwendungszweck durchaus noch tauglich

        <pre width="80">

        </pre>

        mfg

      2. Hi Dennis,

        Gibt es da vielleicht einen Wert den ich <pre> übergeben kann, dass er automatisch einen Zeilenumbruch macht?

        Suche in SelfHTML, Kapitel CSS nach dem Stichwort overflow.

        http://de.selfhtml.org/css/eigenschaften/positionierung.htm#overflow
         http://www.w3.org/TR/CSS21/visufx.html#propdef-overflow

        das bewirkt aber etwas anderes. Gesucht war vermutlich white-space:

        http://de.selfhtml.org/css/eigenschaften/ausrichtung.htm#white_space
         http://www.w3.org/TR/CSS21/text.html#propdef-white-space

        Für den schnellen Link ... siehe Signatur.

        Grüße,
         Roland

        Hi,
        das funktioniert irgendwie nicht!
        Habe folgendes probiert:

        <html>
        <head>
        <style type="text/css">
        <!--
        #editor      { white-space:pre; }
        #langezeile  { white-space:nowrap; }
        //-->
        </style>
        </head>
        <table width="80%" border="1">
        <td>
        <p id="editor">
        test1 test2 test3 test4 test5 t4est6 test7 tets8 test9 test10 test11 test12 test13 test14vtest15 test16 test17 test18 test19 test20
        test2
        test3
        test4
        </p>
        </td>
        </table>
        </html>

        test2 test3 test4 steht alles Nebeneinander! Das soll aber untereinander ohne <br> oder sowas zu benutzen wie halt <pre>.
        Oder mache ich was falsch?

        1. Hi Sven,

          Oder mache ich was falsch?

          Ich glaube, du hast den Verwendungszweck von <pre> noch nicht ganz verstanden:

          <pre>Du heißt Sven</pre>

          steht natürlich alles nebeneinander - woher soll der Browser auch wissen, dass er umbrechen soll?

          <pre>Du
          heißt
          Seven</pre>

          Steht alles untereinander, da in <pre> Zeilenumbrüche (was ja sonst in HTML nicht der fall ist) dargestellt werden.

          Was genau willst du jetzt machen? Du willst, das jedes Wort in einer Zeile steht? Da machst du lieber etwas mit PHP:

          str_replace(" ","\n",$string);

          ersetzt im $string alle Leerzeichen durch einen Zeilenumbruch und wenn du dann

          echo "<pre>$string</pre>";

          machst, so kriegst du jedes Wort in eine Zeile.

          Oder habe ich immer noch nicht verstanden, was du machen willst?

          MfG, Dennis.

          --
          Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
          Zufällige Hinweise:
          ------------------------
          Wer die </faq/> gelesen hat, ist klueger!
          ... und wei wie man Links macht ;-)
          1. <pre>Du heißt Sven</pre>

            steht natürlich alles nebeneinander - woher soll der Browser auch wissen, dass er umbrechen soll?

            <pre>Du
            heißt
            Seven</pre>

            str_replace(" ","\n",$string);

            ersetzt im $string alle Leerzeichen durch einen Zeilenumbruch und wenn du dann

            echo "<pre>$string</pre>";

            machst, so kriegst du jedes Wort in eine Zeile.

            Oder habe ich immer noch nicht verstanden, was du machen willst?

            MfG, Dennis.

            Nein, also ich weis wie <pre> geht nur das geht ja auch so:

            Hallo
            Sven

            steht dann auch untereinander, aber WENN jetzt ich ganz viel in einer Zeile schreibe:

            test1 test2 test3 test4 test5 test6 test7 test8 test9 test10 test10 test12 test13 test14 test15 test16 test17 test18 test19 test20 test21 test22 test23 test24 test25

            Das in einer Zeile, soll der Text am ende der Tabelle automatisch einen Zeilenumbruch machen. Aber mit der Replace Funktion geht es auch da kann ich alle Leerzeichenn ersetzen durch &nbsp. Nur wie kann ich auch die Zeilenumbrüche ersetzen?

            str_replace("\n","<br />",$string);

            Klapt das? Testen selber ist doof mit dem ganzen php und so extra hochladen ist dann scheiße wenn man dass dann ändern musst. vielen dank schonmal

            MFG
            sven!

            1. Hi Sven,

              str_replace("\n","<br />",$string);

              Damit würdest du alle Zeilenumbrüche durch <br /> ersetzen - hast aber dein Problem noch nicht gelöst.
              Würde aber funktionieren.

              Klapt das? Testen selber ist doof mit dem ganzen php und so extra hochladen ist dann scheiße wenn man dass dann ändern musst. vielen dank schonmal

              Such mal nach "XAMPP" für Windows||Linux - da kannst du dir PHP und alles local installieren, ganz einfach, hab ich auch.

              MfG, Dennis.

              --
              Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
              Zufällige Hinweise:
              ------------------------
              Meine Homepage: http://www.riehle-web.com
              Tutorial: http://tutorial.riehle-web.com
              1. Hi Sven,

                str_replace("\n","<br />",$string);

                Damit würdest du alle Zeilenumbrüche durch <br /> ersetzen - hast aber dein Problem noch nicht gelöst.
                Würde aber funktionieren.
                Such mal nach "XAMPP" für Windows||Linux - da kannst du dir PHP und alles local installieren, ganz einfach, hab ich auch.

                MfG, Dennis.

                Doch, dann ist mein Problem gelöst! Thx für eure Hilfe!
                Ich werde dann den QuellCode als normalen Text anzeigen
                lassen. Wenn ich dann vor dem anzeigen alle Zeilenumbrüche
                in <br /> umwandel und alle Leerstellen in &nbsp siehts so
                aus wie im Editor!

                MFG
                Sven!

                1. Hi Sven,

                  str_replace("\n","<br />",$string);

                  Geht übrigends auch einfacher mit

                  nl2br($string);

                  siehe: http://de.php.net/manual/de/function.nl2br.php

                  MfG, Dennis.

                  --
                  Mein SelfCode: ie:{ fl:{ br:^ va:) ls:< fo:) rl:( n4:& ss:) de:> js:( ch:{ sh:( mo:} zu:|
                  Zufällige Hinweise:
                  ------------------------
                  Den Selfcode kann man sich brigends hier decoden lassen:
                  http://www.peter.in-berlin.de/projekte/selfcode/