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.