2 Fonts ein Wort

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

  • 2 Fonts ein Wort

    Hallo,

    ich hab folgendes Problem. Ich habe ein Font in meinem PHP Scrypt und dieser Font hat keine Zahlen enthalten. Nun ist die Frage hat einer eine Idee wie ich 2 Fonts auf ein Wort anwenden kann. Also ich stell mir das so vor $a= Test123 nun soll auf Test123 so die Fonts angewendet werden:

    Test = Font1, 123 = Font2

    Also soll Font1 für die Buchstaben sein und Font2 für die Zahlen.

    Kann man das per php lösen oder gibt es sogar eine andere möglichkeit wie ich die beiden Fonts zusammenführen kann. Also mein eigenen Font aus den beiden erstellen kann.
    Zuletzt geändert von trainmen; 23.07.2008, 18:09.

  • #2
    php hat nichts aber auch rein garnichts mit fonts zu tun!! Das musst du schon mit HTML realisieren
    signed oder unsigned... das ist hier die Frage

    Kommentar


    • #3
      Also per html kann ich sagen wenn mit php "$a = Test123" ausgelesen wird gebe "Test" mit Font1 und "123" mit Font2 aus. Es ist ja nicht sicher das "$a = Test123" ist es könnte auch "$a = T1e2s3t" raus kommen. Gibs dafür ein Stichwort also worunter kann ich das finden?

      Kommentar


      • #4
        jedes zeichen einzelt aus dem string lesen und überprüfen ob es eine zahl oder ein buchstabe ist

        PHP-Code:
        $string "T1e2s3t";
        for (
        $i=0;$i<strlen($string);$i++)
        {
           if(
        is_numeric(substr($string,$i,1)))
           {
              echo 
        substr($string,$i,1)." ist eine Zahl<br />\n";
           } else {
              echo 
        substr($string,$i,1)." ist ein Buchstabe<br />\n";
           }

        das weitere verarbeiten must du selber hinbekommen
        Gruß
        Uzu

        private Homepage

        Kommentar


        • #5
          Ich will nicht kleinlich sein, aber so gehts performanceschonender:

          PHP-Code:
          $string "T1e2s3t";
          for (
          $i_cnt 0$i_max strlen($string); $i_cnt $i_max$i_cnt++) {
              if (
          ctype_digit($string[$i_cnt])) {
                  echo 
          $string[$i_cnt] . " ist eine Zahl<br />\n";
              } else {
                  echo 
          $string[$i_cnt] . " ist ein Buchstabe<br />\n";
              }

          Zuletzt geändert von h3ll; 23.07.2008, 19:48.

          Kommentar


          • #6
            ist ein string in php automatisch ein array????

            dann gehts so natürlich schneller
            Gruß
            Uzu

            private Homepage

            Kommentar


            • #7
              Original geschrieben von UzumakiNaruto
              ist ein string in php automatisch ein array????
              Siehe: http://de.php.net/manual/de/language....string.substr

              Kommentar


              • #8
                Original geschrieben von UzumakiNaruto
                ist ein string in php automatisch ein array????
                Du hast die Möglichkeit, auf einzelne Zeichen einer Zeichenkette mitteils {} bzw. [] zuzugreifen, als wäre sie ein Array - wie h3ll ja schon gezeigt hat. Die eckigen Klammern sind in jedem Fall zu bevorzugen, da die geschweiften mit PHP6 deprecated sind. Zusätzlich ist geplant, den Zugriff auf Zeichen per Klammern mit substr-Funktionalität auszustatten, worauf ich persönlich mich schon sehr freue:
                PHP-Code:
                // Achtung, voraussichtlich erst ab PHP6 funktionsfähig
                $string 'foobar';
                echo 
                $string[03]; // -> ´foo´
                echo $string[-11// -> ´r´ 
                Grüße
                Zuletzt geändert von Griecherus; 23.07.2008, 20:17.
                Nieder mit der Camel Case-Konvention

                Kommentar


                • #9
                  Original geschrieben von UzumakiNaruto
                  ist ein string in php automatisch ein array????
                  Da PHP in C geschrieben ist, soll man nicht wundern, dass string eigentlich array of characters ist

                  Kommentar


                  • #10
                    PHP-Code:
                    $text 'T11e2s3t';

                    echo 
                    preg_replace('/(\\d+)/''<span style="font-family:Verdana; font-size:200%">\\1</span>'$text); 
                    EDIT:
                    forum verschluckte mal wieder backslashe
                    Zuletzt geändert von 3DMax; 23.07.2008, 20:25.

                    Kommentar


                    • #11
                      Danke hab es soweit hinbekommen. Habe jetzt nur das Problem das die ersten Beiden Zeichen (rechts weil ich beim string die reinfolge geänder habe und der Text rechtsbündig ist) sich überschreiben(Siehe link Ausgabe). Ich versteh nur nicht warum dies passiert -.- .

                      Dies wird ausgelesen:
                      $row['name'] = Storm2008

                      Das ist das PHP Scrypt:
                      PHP-Code:
                      $sql "SELECT `name` FROM guild WHERE guildid = '$guild'";
                              
                              
                      Header("Content-Type: image/png");
                              
                              
                      $query mysql_query($sql) or die(mysql_error());
                              
                      $row mysql_fetch_assoc($query);
                              
                      $img ImageCreateFromPNG('Mensch_Hexenmeister_m2.png');
                              
                      $yellow ImageColorAllocate($img25521888);
                              
                      $black =  ImageColorAllocate($img000);
                              
                      $size_4 18;
                              
                      $size_5 12;
                              
                      $font_1 "Fonts/Van Helsing.ttf";
                              
                      $font_2 "Fonts/TektonPro-BoldCond.otf";
                              
                      $banner_x 500;
                              
                      $banner_y 167;
                              
                      $banner_pos1 27;
                              
                      $guildn_y 164;
                              
                      $guildn_y_5 159;

                              if(
                      $row == 0)
                                  {
                                  
                      $guild "Keine Gilde";
                                  }
                              else 
                                  {
                                  
                      $guild_string strrev($row['name']);
                                  
                                  for (
                      $i=0;$i<strlen($guild_string);$i++ AND $banner_pos1 $banner_s1[4] + $banner_pos1)
                                      {
                                      if(
                      is_numeric(substr($guild_string,$i,1)))
                                          {
                                          
                      $guild substr($guild_string,$i,1);
                                          
                      $banner_s1 imagettfbbox($size_50$font_2$guild);
                                          
                      $char_font $banner_x - ($banner_pos1 $banner_s1[4]);
                                          
                      $guildn_x $char_font;
                                          
                      imagefttext($img$size_50$guildn_x$guildn_y_5$black$font_2$guild);
                                          
                      imagefttext($img$size_50$guildn_x 2$guildn_y_5 -2$yellow$font_2$guild);
                                          }
                                      else 
                                          {
                                          
                      $guild substr($guild_string,$i,1);
                                          
                      $banner_s1 imagettfbbox($size_40$font_1$guild);
                                          
                      $char_font $banner_x - ($banner_pos1 $banner_s1[4]);
                                          
                      $guildn_x $char_font;
                                          
                      imagefttext($img$size_40$guildn_x$guildn_y$black$font_1$guild);
                                          
                      imagefttext($img$size_40$guildn_x 2$guildn_y -2$yellow$font_1$guild);
                                          }
                                      }
                                  }
                               
                      ImagePNG($img);
                              }
                          } 

                      Das kommt als Ausagbe raus:


                      http://trainmen.tr.funpic.de/Banner/gilde.png

                      Kommentar


                      • #12
                        EDIT:
                        Kann mir keiner sagen warum die 0 und die [COLOR=orangered]1[/COLOR] auf die gleiche position geschrieben werden?
                        Zuletzt geändert von trainmen; 27.07.2008, 20:24.

                        Kommentar


                        • #13
                          Mach doch mal Testausgaben für die letzte 0 und die 8.

                          Kommentar


                          • #14
                            Also wenn ich nur die Augabe 0 Ausgebe erscheint die an der ersten Postion und das gleiche bei der 1. Sowie bei den anderen Zahlen, wenn ich die nur einzeln augebe. Aber wenn ich ab positon 1 anfange hab ich das problem nicht.

                            Kommentar


                            • #15
                              Nagut hab das Problem jetzt so gelösst in dem ich einfach eine Leerzeil e vorne angehangen habe.

                              Kommentar

                              Lädt...
                              X