Grafiken laden, bearbeiten und in ein Magazin laden


So ähnlich habe ich es eben mal selber ausprobiert und es geht auch!

Aber das wirft ein ganz neues Problem auf.

PHP:
$var1 = 'BMW50!0ps'; 
 
$pattern = '#(![A-Z0-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'; 
            $groesse[] = '64'; 
        } 
        elseif(!empty($matches[2][$i])) { 
            $Arial_Font[] = 'Arial_Bold'; 
            $groesse[] = '32'; 
        } 
        elseif(!empty($matches[3][$i])) { 
            $Arial_Font[] = 'hier_pfad_für_@'; // @ matches
            $groesse[] = '64'; 
        }
        else 
        { 
            $Arial_Font[] = 'Arial_Bold'; 
            $groesse[] = '32'; 
        } 
    } 
} 
else 
{ 
    $Arial_Font[] = array(); 
} 
  
echo '<pre>'; 
print_r( $Arial_Font ); 
echo '<pre>';

Mit diesem Code konnte ich jedem Zeichen in der Variable einen eigenen Pfad zu weisen. Mit deinem Code von vorhin geht das zwar auch aber immer nur mit dem selben Pfad. Es findet keine Unterscheidung statt.
 
Kann ich nicht ganz nachvollziehen...
PHP:
$data = array();
if(preg_match_all($pattern, $var1, $matches) !== false) {  
    $count = count($matches[0]);  
    foreach($matches[0] as $i => $zeahler) {  
        if(!empty($matches[1][$i])) {  
            $data[$i]['Font'] = 'Arial_Normal';  
            $data[$i]['groesse'] = '64';  
        }  
        elseif(!empty($matches[2][$i])) {  
            $data[$i]['Font'] = 'Arial_Bold';  
            $data[$i]['groesse'] = '32';  
        }  
        elseif(!empty($matches[3][$i])) {  
            $data[$i]['Font'] = 'hier_pfad_für_@'; // @ matches 
           $data[$i]['groesse'] = '64';  
        } 
        else  
        {  
            $data[$i]['Font'] = 'Arial_Bold';  
           $data[$i]['groesse'] = '32';  
        }  
    }  
}  
   
echo '<pre>';  
var_dump($data);
echo '<pre>';
 
Zuletzt bearbeitet:
Passt nicht 100% zum Thema aber ich möchte jetzt nicht noch ein neues starten.

PHP:
$var1 = 'BMW500PS';

Ich suche eine Möglichkeit das vor jedem Buchstaben oder Zahl (sonst keine anderen Zeichen) ein Ausrufezeichen eingefügt wird.

PHP:
echo $var1; // Ausgabe: !B!M!W!5!0!0!P!S

Kann mir da bitte noch jemand helfen?
 
Hallo Zusammen. :)

Ich habe leider ein paar Probleme mit folgendem Code.

PHP:
   $var1 = '@@@ABCDEFG101234567A@B@C@1@2@3@@@!H!A!L!L!O@!0!0!7';


   $pattern = '#(![A-Z0-9ÄÖÜ])|([A-Z0-9ÄÖÜ])|(@)#';

   if(preg_match_all($pattern, $var1, $matches) !== false) 
   {
      foreach($matches[0] as $i => $zeahler) 
      {
         if(!empty($matches[1][$i])) 
         {
            $arial_font[$i] = 'small/'.$var1[$i].'.png';
         }
         elseif(!empty($matches[2][$i])) 
         {
            $arial_font[$i] = 'normal/'.$var1[$i].'.png';
         }
         elseif(!empty($matches[3][$i])) 
         {
            $arial_font[$i] = 'symbole/'.$var1[$i].'.png';
         }
            else
         {
            $arial_font[$i] = 'normal/'.$var1[$i].'.png';
         }
      }
   }

   echo '<pre>';
   print_r($arial_font);
   echo '</pre>';

Es wird folgendes ausgegeben:
PHP:
Array
(
    [0] => symbole/@.png
    [1] => symbole/@.png
    [2] => symbole/@.png
    [3] => normal/A.png
    [4] => normal/B.png
    [5] => normal/C.png
    [6] => normal/D.png
    [7] => normal/E.png
    [8] => normal/F.png
    [9] => normal/G.png
    [10] => normal/1.png
    [11] => sonstiges/0.png
    [12] => normal/1.png
    [13] => normal/2.png
    [14] => normal/3.png
    [15] => normal/4.png
    [16] => normal/5.png
    [17] => normal/6.png
    [18] => normal/7.png
    [19] => normal/A.png
    [20] => symbole/@.png
    [21] => normal/B.png
    [22] => symbole/@.png
    [23] => normal/C.png
    [24] => symbole/@.png
    [25] => normal/1.png
    [26] => symbole/@.png
    [27] => normal/2.png
    [28] => symbole/@.png
    [29] => normal/3.png
    [30] => symbole/@.png
    [31] => symbole/@.png
    [32] => symbole/@.png
    [33] => small/!.png
    [34] => small/H.png
    [35] => small/!.png
    [36] => small/A.png
    [37] => small/!.png
    [38] => symbole/L.png
    [39] => small/!.png
    [40] => small/L.png
    [41] => small/!.png
    [42] => symbole/O.png
    [43] => normal/@.png
    [44] => normal/!.png
    [45] => normal/0.png
    [46] => sonstiges/!.png
    [47] => sonstiges/0.png
    [48] => sonstiges/!.png
)

1.) Array Nr. 11 sollte nicht "sonstiges" sondern "normal" sein
2.) Ab Array Nr. 44 "spinnt" das Array
3.) Ab Array Nr. 33 werden Ausrufezeichen dazugezählt obwohl es nur ein "Unterscheidungszeichen" ist. Wobei ich GLAUBE weiss warum das so ist. -> [i]

Kann mir jemand helfen?

Ich möchte um Ressourcen zu sparen direkt ein "großes" Array für alles erstellen.
 
Ich habe leider meinen Code falsch gepostet.

PHP:
   $var1 = '@@@ABCDEFG101234567A@B@C@1@2@3@@@!H!A!L!L!O@!0!0!7BL5000';


   $pattern = '#(![A-Z0-9ÄÖÜ])|([A-Z0-9ÄÖÜ])|(@)#';

   if(preg_match_all($pattern, $var1, $matches) !== false) 
   {
      foreach($matches[0] as $i => $zeahler) 
      {
         if(!empty($matches[1][$i])) 
         {
            $arial_font[$i] = 'Small/'.$matches[0][$i].'.png';
         }
         elseif(!empty($matches[2][$i])) 
         {
            $arial_font[$i] = 'Normal/'.$matches[0][$i].'.png';
         }
         elseif(!empty($matches[3][$i])) 
         {
            $arial_font[$i] = 'Symbole/'.$matches[0][$i].'.png';
         }
            else
         {
            $arial_font[$i] = 'Sonstiges/'.$matches[0][$i].'.png';
         }
      }
   }

   echo $var1;
   echo '<br />';
   echo '<pre>';
   print_r($arial_font);
   echo '</pre>';

Ausgabe:
PHP:
Array
(
    [0] => Symbole/@.png
    [1] => Symbole/@.png
    [2] => Symbole/@.png
    [3] => Normal/A.png
    [4] => Normal/B.png
    [5] => Normal/C.png
    [6] => Normal/D.png
    [7] => Normal/E.png
    [8] => Normal/F.png
    [9] => Normal/G.png
    [10] => Normal/1.png
    [11] => Sonstiges/0.png
    [12] => Normal/1.png
    [13] => Normal/2.png
    [14] => Normal/3.png
    [15] => Normal/4.png
    [16] => Normal/5.png
    [17] => Normal/6.png
    [18] => Normal/7.png
    [19] => Normal/A.png
    [20] => Symbole/@.png
    [21] => Normal/B.png
    [22] => Symbole/@.png
    [23] => Normal/C.png
    [24] => Symbole/@.png
    [25] => Normal/1.png
    [26] => Symbole/@.png
    [27] => Normal/2.png
    [28] => Symbole/@.png
    [29] => Normal/3.png
    [30] => Symbole/@.png
    [31] => Symbole/@.png
    [32] => Symbole/@.png
    [33] => Small/!H.png
    [34] => Small/!A.png
    [35] => Small/!L.png
    [36] => Small/!L.png
    [37] => Small/!O.png
    [38] => Symbole/@.png
    [39] => Small/!0.png
    [40] => Small/!0.png
    [41] => Small/!7.png
    [42] => Normal/B.png
    [43] => Normal/L.png
    [44] => Normal/5.png
    [45] => Sonstiges/0.png
    [46] => Sonstiges/0.png
    [47] => Sonstiges/0.png
)

Warum wird die "0" immer als "Sonstiges" erkannt? Das Pattern ist doch richtig?

Edit:

So wie ich das verstehe müssten...

bei $matches[1] Buchstaben, Zahlen und Umlaute mit einem Ausrufezeichen davpr erkannt werden.

bei $matches[2] normale Buchstaben, Zahlen und Umlaute erkannt werden.

bei $matches[3] nur @-Zeichen erkannt werden

Sehe ich das falsch?
 
Zuletzt bearbeitet:
Zurück