Grafiken laden, bearbeiten und in ein Magazin laden

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:
   $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($zeahler, 1).'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:
$var1 = 'BmW50!0ps';

B -> Arial_Bold
m -> Arial_Normal
W -> Arial_Bold
5 -> Arial_Bold
0 -> Arial_Bold
!0 -> Arial_Normal
p -> Arial_Normal
s -> 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/
 
Das hier bringt das gewünschte Ergebnis:
PHP:
$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ß
 
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
 
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:
PHP:
$pattern = '#(![a-z0-9])|([a-z0-9])#i';
Das i am Ende steht für case insensitive.

Gruß
 
Müssen die Buchstaben "a-z" nicht Großgeschrieben werden? Ich möchte ja erreichen das im Skript alle Buchstaben immer Großgeschreiben werden.
 
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-zeichen-string-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:
$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.
 
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-zeichen-string-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:
$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.
PHP:
$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ß
 
Mein aktuelles "Pattern" sieht so aus:
PHP:
$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:
$pattern = '/([a-z]|![0-9])|([A-Z0-9])/';

Kannst du bitte zum Abschluss dieses Threads das erste Pattern (oben) um das @-Zeichen erweitern?
 
Zurück