tutorials.de Buch-Aktion 05/2012
Like Tree33Danke
ERLEDIGT
NEIN
ANTWORTEN
91
ZUGRIFFE
2363
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #46
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Poste mal bitte das gesamte Skript wie es jetzt ist.
     

  2. #47
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    So sieht das ganze aus:
    PHP-Code:
       $var1 'BmW50!0ps';



       
    $pattern '/([a-z])|([A-Z])|(![0-9])|([0-9])/';

       if(
    preg_match_all($pattern$var1$matches) !== false) {
          
    $count count($matches[0]);
          foreach(
    $matches[0] as $z => $zeahler) {
             if(!empty(
    $matches[1][$i])) {
                
    $Arial_Font[] = 'Arial_Normal';
             }
             elseif(!empty(
    $matches[2][$i])) {
                
    $Arial_Font[] = 'Arial_Bold';
             }
             elseif(!empty(
    $matches[3][$i])) {
                
    $Arial_Font[] = substr($zeahler1).'Arial_Normal';
             }
                else 
             {
                
    $Arial_Font[] = 'Arial_Bold';
             }
          }
       } 
          else 
       {
          
    $Arial_Font[] = array();
       } 
     

  3. #48
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Änder mal
    Code PHP:
    1
    
    foreach($matches[0] as $z => $zeahler) {
    in
    Code PHP:
    1
    
    foreach($matches[0] as $i => $zeahler) {
    um.

    Du schreibst in der Foreachschleife as $z benutzt aber $i.

    Gruß

    //EDIT
    Das
    Code PHP:
    1
    
    $count = count($matches[0]);
    kannst Du löschen da Du es nirgens benutzt.
    Geändert von Raisch (09.02.12 um 14:39 Uhr)
     

  4. #49
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Ist dieser Teil denn richtig?

    PHP-Code:
             elseif(!empty($matches[3][$i])) {
                
    $Arial_Font[] = substr($zeahler1).'Arial_Normal';
             } 
    Das Ausrufezeichen hat NUR die Fubktion zum erkennen der Schriftart. Danach wird es NICHT mehr gebraucht.
     

  5. #50
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von bl5000 Beitrag anzeigen
    Ist dieser Teil denn richtig?

    PHP-Code:
             elseif(!empty($matches[3][$i])) {
                
    $Arial_Font[] = substr($zeahler1).'Arial_Normal';
             } 
    Das Ausrufezeichen hat NUR die Fubktion zum erkennen der Schriftart. Danach wird es NICHT mehr gebraucht.
    Ich kann Dir nicht sagen ob der Teil richtig ist, weil ich nicht genau weiß was Du damit erreichen willst.

    Tu mir mal einen Gefallen, poste mal das gesamte Skript. Auch den Teil mit dem Pfad, halt mal alles. Dann sehe ich mal wie die einzelnen Teile zusammenspielen (sollen).

    Gruß
     

  6. #51
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Das sind 3000 Zeilen Code, wovon der Großteil nur kleinere Nebenaufgaben erfüllt.

    Der Nachfolgende Code (von oben) soll folgendes machen.

    In der Variable "$var1" befindet sich der Text "BmW50!0ps" der von einem User eingegeben wurde.

    Normalerweise lautet der Text einfach nur "BMW500PS" aber der User möchte bei anderer Schreibweise eine andere Schrift benutzen (Schriftart oder Farbe... egal)

    PHP-Code:
       $var1 'BmW50!0ps';



       
    $pattern '/([a-z])|([A-Z])|(![0-9])|([0-9])/';

       if(
    preg_match_all($pattern$var1$matches) !== false) {
          
    $count count($matches[0]);
          foreach(
    $matches[0] as $z => $zeahler) {
             if(!empty(
    $matches[1][$i])) {
                
    $Arial_Font[] = 'Arial_Normal';
             }
             elseif(!empty(
    $matches[2][$i])) {
                
    $Arial_Font[] = 'Arial_Bold';
             }
             elseif(!empty(
    $matches[3][$i])) {
                
    $Arial_Font[] = substr($zeahler1).'Arial_Normal';
             }
                else 
             {
                
    $Arial_Font[] = 'Arial_Bold';
             }
          }
       } 
          else 
       {
          
    $Arial_Font[] = array();
       } 
    Bei "$matches[1]" wird die Variable auf kleine Zeichen geprüft. Also kleingeschriebe Buchstaben. Bei Treffer wird "Arial_Normal" verwendet.

    Bei "$matches[2]" wird die Variable auf große Zeichen geprüft. Also Großgeschriebene Buchstaben. Bei Treffer wird "Arial_Bold" verwendet.

    Bei "$matches[3]" wird die Variable auf Zahlen mit einem AUSRUFEZEICHEN davor geprüft. Bei Treffer wird "Arial_Normal" verwendet.

    Bei "$matches[4]" (hier nur else) wird die Variable auf Zahlen geprüft. Bei Treffer wird "Arial_Bold" verwendet.

    Was am ende rauskommt (soll******) ist:
    PHP-Code:
    $var1 'BmW50!0ps';

    -> Arial_Bold
    -> Arial_Normal
    -> Arial_Bold
    -> Arial_Bold
    -> Arial_Bold
    !-> Arial_Normal
    -> Arial_Normal
    -> Arial_Normal 
    Wenn später die Grafiken geladen werden, weiss das Skript anhand dieses Codes in welchen Ordner es die Grafik findet.

    Entweder:
    /images/sig/font_grafik/Arial_Bold/blue/
    oder
    /images/sig/font_grafik/Arial_Normal/blue/
     

  7. #52
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Das hier bringt das gewünschte Ergebnis:
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    
    $var1 = 'BmW50!0ps';
     
    $pattern = '/([a-z]|![0-9])|([A-Z0-9])/';
     
    if(preg_match_all($pattern, $var1, $matches) !== false) {
        $count = count($matches[0]);
        foreach($matches[0] as $i => $zeahler) {
            if(!empty($matches[1][$i])) {
                $Arial_Font[] = 'Arial_Normal';
            }
            elseif(!empty($matches[2][$i])) {
                $Arial_Font[] = 'Arial_Bold';
            }
            else
            {
                $Arial_Font[] = 'Arial_Bold';
            }
        }
    }
    else
    {
        $Arial_Font[] = array();
    }
     
    echo '<pre>';
    print_r( $Arial_Font );
    echo '<pre>';

    Gruß
     

  8. #53
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Ja! Es funktioniert!
     

  9. #54
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Nicht sauer werden! Aber was muss ich am Code verändern, wenn ich statt kleine Buchstaben zum erkennen von der richtigen Schrift, einfach auch hier wieder das Ausrufezeichen verwende?

    $var1 = 'BmW50!0ps'

    B!MW50!0!P!S
     

  10. #55
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von bl5000 Beitrag anzeigen
    Nicht sauer werden! Aber was muss ich am Code verändern, wenn ich statt kleine Buchstaben zum erkennen von der richtigen Schrift, einfach auch hier wieder das Ausrufezeichen verwende?

    $var1 = 'BmW50!0ps'

    B!MW50!0!P!S
    Dazu brauchst Du nur das Pattern ändern:
    Code PHP:
    1
    
    $pattern = '#(![a-z0-9])|([a-z0-9])#i';
    Das i am Ende steht für case insensitive.

    Gruß
     

  11. #56
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Müssen die Buchstaben "a-z" nicht Großgeschrieben werden? Ich möchte ja erreichen das im Skript alle Buchstaben immer Großgeschreiben werden.
     

  12. #57
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von bl5000 Beitrag anzeigen
    Müssen die Buchstaben "a-z" nicht Großgeschrieben werden? Ich möchte ja erreichen das im Skript alle Buchstaben immer Großgeschreiben werden.
    Schau mal hier!

    Gruß
     

  13. #58
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Durch meine Dummheit habe ich zu einem eigentlich in diesem Thread gehörenden Frage extra einen neuen Thread erstellt.

    http://www.tutorials.de/php/384849-z...einfuegen.html

    Ich habe nun die Variable "$var1" so weit bearbeitet das ich damit weiter machen kann.

    Im nächsten und letzten Schritt, möchte ich nun mit dem Code von @Raisch (danke noch einmal) neben Buchstaben und Zahlen auch den @-Zeichen einen Pfad zuweisen.

    PHP-Code:
    $var1 'B@m@W@5@0@!0@p@s';
     
    $pattern '/([a-z]|![0-9])|([A-Z0-9])/';
     
    if(
    preg_match_all($pattern$var1$matches) !== false) {
        
    $count count($matches[0]);
        foreach(
    $matches[0] as $i => $zeahler) {
            if(!empty(
    $matches[1][$i])) {
                
    $Arial_Font[] = 'Arial_Normal';
            }
            elseif(!empty(
    $matches[2][$i])) {
                
    $Arial_Font[] = 'Arial_Bold';
            }
            else
            {
                
    $Arial_Font[] = 'Arial_Bold';
            }
        }
    }
    else
    {
        
    $Arial_Font[] = array();
    }
     
    echo 
    '<pre>';
    print_r$Arial_Font );
    echo 
    '<pre>'
    Die @-Zeichen sollen wie die normalen Buchstaben und Zahlen erkannt werden und ihren eigenen Pfad bekommen wie z.B. Arial_Normal oder Arial_Bold.
     

  14. #59
    Avatar von Raisch
    Raisch Raisch ist offline extraordinary bit
    Registriert seit
    Aug 2011
    Ort
    Berlin
    Beiträge
    333
    Zitat Zitat von bl5000 Beitrag anzeigen
    Durch meine Dummheit habe ich zu einem eigentlich in diesem Thread gehörenden Frage extra einen neuen Thread erstellt.

    http://www.tutorials.de/php/384849-z...einfuegen.html

    Ich habe nun die Variable "$var1" so weit bearbeitet das ich damit weiter machen kann.

    Im nächsten und letzten Schritt, möchte ich nun mit dem Code von @Raisch (danke noch einmal) neben Buchstaben und Zahlen auch den @-Zeichen einen Pfad zuweisen.

    PHP-Code:
    $var1 'B@m@W@5@0@!0@p@s';
     
    $pattern '/([a-z]|![0-9])|([A-Z0-9])/';
     
    if(
    preg_match_all($pattern$var1$matches) !== false) {
        
    $count count($matches[0]);
        foreach(
    $matches[0] as $i => $zeahler) {
            if(!empty(
    $matches[1][$i])) {
                
    $Arial_Font[] = 'Arial_Normal';
            }
            elseif(!empty(
    $matches[2][$i])) {
                
    $Arial_Font[] = 'Arial_Bold';
            }
            else
            {
                
    $Arial_Font[] = 'Arial_Bold';
            }
        }
    }
    else
    {
        
    $Arial_Font[] = array();
    }
     
    echo 
    '<pre>';
    print_r$Arial_Font );
    echo 
    '<pre>'
    Die @-Zeichen sollen wie die normalen Buchstaben und Zahlen erkannt werden und ihren eigenen Pfad bekommen wie z.B. Arial_Normal oder Arial_Bold.
    Befasse dich aber wirklich mal mit regulären Ausdrücken.
    Code PHP:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    $var1 = 'BmW50!0ps'; 
      
    $pattern = '/([a-z]|![0-9])|([A-Z0-9])|(@)/'; 
      
    if(preg_match_all($pattern, $var1, $matches) !== false) { 
        $count = count($matches[0]); 
        foreach($matches[0] as $i => $zeahler) { 
            if(!empty($matches[1][$i])) { 
                $Arial_Font[] = 'Arial_Normal'; 
            } 
            elseif(!empty($matches[2][$i])) { 
                $Arial_Font[] = 'Arial_Bold'; 
            } 
            elseif(!empty($matches[3][$i])) { 
                $Arial_Font[] = 'hier_pfad_für_@'; // @ matches
            }
            else 
            { 
                $Arial_Font[] = 'Arial_Bold'; 
            } 
        } 
    } 
    else 
    { 
        $Arial_Font[] = array(); 
    } 
      
    echo '<pre>'; 
    print_r( $Arial_Font ); 
    echo '<pre>';

    Gruß
     

  15. #60
    Alice Alice ist offline Mitglied Brillant
    Registriert seit
    Mar 2010
    Beiträge
    882
    Mein aktuelles "Pattern" sieht so aus:
    PHP-Code:
    $pattern '#(![A-Z0-9ÄÖÜ])|([A-Z0-9ÄÖÜ])#i'
    Soll ich nun das neue von dir verwenden oder wie? Die sehen ja grundsätzlich verschieden aus.

    PHP-Code:
    $pattern '/([a-z]|![0-9])|([A-Z0-9])/'
    Kannst du bitte zum Abschluss dieses Threads das erste Pattern (oben) um das @-Zeichen erweitern?
     

Ähnliche Themen

  1. Grafiken laden lange, trotz in Resources enthalten
    Von i123 im Forum .NET Grafik und Sound
    Antworten: 7
    Letzter Beitrag: 12.05.10, 18:56
  2. Grafiken laden
    Von Len-ni im Forum C/C++
    Antworten: 5
    Letzter Beitrag: 16.01.08, 19:30
  3. Grafiken aus Cache laden....
    Von bernhardp im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 21.06.05, 11:12
  4. Grafiken im Hintergrund laden
    Von NoGi im Forum HTML & XHTML
    Antworten: 1
    Letzter Beitrag: 23.04.03, 11:44
  5. Bei mouse over 2 Grafiken laden...
    Von Oxygen im Forum Javascript & Ajax
    Antworten: 13
    Letzter Beitrag: 26.02.02, 13:55