Ankündigung

Einklappen
Keine Ankündigung bisher.

Geänderter Font-Size (html) an definierter Position ausgeben

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Geänderter Font-Size (html) an definierter Position ausgeben

    Hallo,
    Ich möchte die Font-Size ändern und an fixen Positionen ausgeben, ich habe mit sprintf und str_pad getestet, aber keine Lösung erzielt :

    PHP-Code:
    $text 'HTML in PHP';

    // In Ordnung
    echo '<pre>';
    echo  
    sprintf("Test 1: %-20s%-20s<br>" $text$text );

    $output sprintf ('<p> <span style="font-size: 10pt; font-family: georgia,palatino; color: black;"> %s </span></p>'$text);

    // In Ordnung Ausgabe ohne Positions Angabe
    echo $output;
    // Dieser Test erzeugt Ausgabe in 2 Zeilen und erfüllt meine Anforderung nicht
    echo str_pad $output20' 'STR_PAD_RIGHT ) . str_pad $output20' 'STR_PAD_RIGHT ) ;
    // Dieser Test erzeugt ebenfalls Ausgabe in 2 Zeilen und erfüllt meine Anforderung nicht
    echo  sprintf("%-20s%-20s<br>" $output$output ); 

  • #2
    font-size: 10pt ist falsch. pt ist die Angabe fürs Drucklayout, nicht für Bildschirme oder Beamer etc.
    HTML und definierter Position ist bei mir CSS position: absolute oder relative.
    Weiss gerade nicht was du möchtest da dein Code sehr merkwürdig aussieht.
    Wenn du Abstände brauchst verwende padding.

    Kommentar


    • #3
      ich habe die font-size Definition von http://kyleschaeffer.com/development/css-font-size-em-vs-px-vs-pt-vs/ und 10pt nicht richtig interpretiert. Man nimmt em oder px ?

      Ich möchte Texte an fix definitieren Positionen ausgeben , sprintf oder str_pad füllen den Rest vom Text mit Spaces auf und in dem
      Beispiel wird dann ab Position 20 aufwärts der 2. Text ausgegeben. Habe das Beispiel ein wenig erweitert

      PHP-Code:
      $text1 'ab pos1-pos20';
      $text2 'ab pos21-pos40';

      // In Ordnung
      echo '<pre>';
      echo  
      sprintf("Test 1: %-20s%-20s<br>" $text1$text2 );

      $output sprintf ('<p> <span style="font-size: 10pt; font-family: georgia,palatino; color: black;"> %s %s </span></p>'$text1$text2);

      // In Ordnung Ausgabe ohne Positions Angabe
      echo $output;
      // Dieser Test erzeugt Ausgabe in 2 Zeilen und erfüllt meine Anforderung nicht
      echo str_pad $output20' 'STR_PAD_RIGHT ) . str_pad $output20' 'STR_PAD_RIGHT ) ;
      // Dieser Test erzeugt ebenfalls Ausgabe in 2 Zeilen und erfüllt meine Anforderung nicht
      echo  sprintf("%-20s%-20s<br>" $output$output ); 
      Getestet habe ich es Online auf http://phptester.net , hier sieht man das gleiche Verhalten wie bei meinen lokalen Tests


      Kommentar


      • #4
        Keine Ahnung was du letztendlich haben willst, daher habe ich dir mal beide Varianten im Vergleich gegeben.
        Erstere ist mit str_pad, die 2. Variante ist mit CSS und postition:absolute sowie padding realisiert.
        Mit proportionalen Schriften wirst du mit ersterer Variante immer Probleme haben.

        HTML-Code:
        <?php
        $text1 = 'ab pos1-pos20';
        $text2 = 'ab pos21-pos40';
        $string = str_pad( $text1, 20, '*', STR_PAD_RIGHT ).str_pad( $text2, 20, '*', STR_PAD_RIGHT );
        $output = str_replace("*", "&nbsp;", $string);
        
        $text3 = 'Lorem Ipsum';
        $string = str_pad( $text3, 20, '*', STR_PAD_RIGHT ).str_pad( $text3, 20, '*', STR_PAD_RIGHT );
        $output2 = str_replace("*", "&nbsp;", $string);
        ?>
        <!DOCTYPE html>
        <html>
        <head>
            <meta charset="UTF-8">
            <title></title>
            <style>
             p {positon:relative;font: 10px georgia, palatino serif; color: black;}
             p > span {position:absolute; display: inline-block;left:0px;padding-left:20ex;}
            </style>
        </head>
        <body>
        <p><?=$output; ?></p>
        <p><?=$output2; ?></p>
        <p><?=$text1; ?><span><?=$text2; ?></span></p>
        <p>Lorem Ipsum<span>Lorem  Ipsum</span></p>
        </body>
        </html>

        Kommentar


        • #5
          Keine Ahnung was du letztendlich haben willst, daher habe ich dir mal beide Varianten im Vergleich gegeben.
          Erstere ist mit str_pad, die 2. Variante ist mit CSS und postition:absolute sowie padding realisiert.
          Mit proportionalen Schriften wirst du mit ersterer Variante immer Probleme haben.
          In den Programmier Sprachen C und Perl kann eine formatierte Ausgabe nur mit printf angeben werden und wenn in einer Zeile verschiedene Texte mit verschiedenen Längen hat und diese an fixen
          Positionen ausgeben möchte, dann wählte man entweder <TAB> oder %-<Wert>s oder Alternativ füllt man den Text bis zur gewünschten Länge mit Leerzeichen auf ( in php mit str_pad )

          Lineal / Bildschirm
          01234567890123456789012345678901234567890123456789 012345678901234567890123456789
          // Ausgabe
          abpos1-pos20__________abpos21-pos40

          und diese Ausgabe funktioniert ja mit sprintf , aber ich möchte eine andere Schriftart mittels HTML angeben.

          Bei der letzten Variante wird jetzt nur

          Lorem IpsumLorem Ipsum ausgegeben , richtig ?

          Kommentar


          • #6
            Zitat von bora99 Beitrag anzeigen
            In den Programmier Sprachen C und Perl kann eine formatierte Ausgabe nur mit printf angeben werden
            Ja und? Du bist hier in einem PHP-Forum.
            Die Ausgabe ist immer HTML und dort positioniert man mit CSS.

            Bei der letzten Variante wird jetzt nur

            Lorem IpsumLorem Ipsum ausgegeben , richtig ?
            Nein, Probiere es bitte aus.

            Kommentar


            • #7
              Du bist hier in einem PHP-Forum.
              Die Ausgabe ist immer HTML und dort positioniert man mit CSS.
              Es war nur eine Information und ich bin HTML WebDesigner, für meine Anforderungen konnte ich mit PHP das Auslangen finden und es gibt sehr viele gleich Abläufe.
              Für Positionierung habe ich jetzt ein wenig über CSS gelesen, man muss sich jetzt (leider) in die Materie einlesen . Hier ein Tutorial https://www.mediaevent.de/tutorial/css-position-absolute-relative.html ok ?

              Bei der letzten Variante wird jetzt nur
              Lorem IpsumLorem Ipsum ausgegeben , richtig ?

              Nein, Probiere es bitte aus.
              Ich habe es ausprobiert und bei mir wird nur wird nur Lorem IpsumLorem Ipsum ausgegeben

              Liegt es an folgenden HTML Code, daß die Variablen nicht ausgewertet werden ?
              Lorem Ipsum wird ja angezeigt
              HTML-Code:
              <p><?=$output; ?></p>
              <p><?=$output2; ?></p>
              <p><?=$text1; ?><span><?=$text2; ?></span></p>
              <p>Lorem Ipsum<span>Lorem  Ipsum</span></p>

              Kommentar


              • #8
                Wenn PHP im Code vorkommt, dann brauchst du einen Webserver. Lokal kannst du dir unter Windows Wamp installieren.
                Die Datei muss dann folglich auf .php enden und nicht auf html.

                Kommentar


                • #9
                  Zitat von protestix Beitrag anzeigen
                  Wenn PHP im Code vorkommt, dann brauchst du einen Webserver.
                  Och, PHP kommt gelegentlich auch ohne Webserver klar
                  [SIZE="1"]Atwood's Law: any application that can be written in JavaScript, will eventually be written in JavaScript.[/SIZE]

                  Kommentar


                  • #10
                    Es liegt an folgenden HTML Code, daß die Variablen nicht ausgewertet werden
                    Lorem Ipsum wird ja angezeigt und wenn ich hinzufüge Test hinzufüge dann wird es auch angezeigt

                    HTML-Code:
                      <p><?=$output; ?></p> <p><?=$output2; ?></p> <p><?=$text1; ?><span><?=$text2; ?></span></p> <p>Test<span>Test</span></p> <p>Lorem Ipsum<span>Lorem  Ipsum</span></p>
                    Aktuelle Version von Apache unter Linux

                    HTTP/1.1 200 OK
                    Server version: Apache/2.2.12 (Linux)
                    Server built: Sep 30 2015 15:20:44
                    Server's Module Magic Number: 20051115:24
                    Server loaded: APR 1.3.3, APR-Util 1.3.4
                    Compiled using: APR 1.3.3, APR-Util 1.3.4

                    Kommentar


                    • #11
                      Hat nichts mit PHP zu tun. Layout ist HTML / CSS Sache.

                      MOD: Verschoben von PHP-Einsteiger
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        bau doch mal einen fiddle mit Deinem HTML output. Dann sieht man genau, was Du meinst.

                        Kommentar

                        Lädt...
                        X