-
Poste mal bitte das gesamte Skript wie es jetzt ist.
-
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($zeahler, 1).'Arial_Normal';
}
else
{
$Arial_Font[] = 'Arial_Bold';
}
}
}
else
{
$Arial_Font[] = array();
}
-
Änder mal
inCode PHP:1
foreach($matches[0] as $z => $zeahler) {
um.Code PHP:1
foreach($matches[0] as $i => $zeahler) {
Du schreibst in der Foreachschleife as $z benutzt aber $i.
Gruß
//EDIT
Daskannst Du löschen da Du es nirgens benutzt.Code PHP:1
$count = count($matches[0]);
Geändert von Raisch (09.02.12 um 14:39 Uhr)
-
Ist dieser Teil denn richtig?
Das Ausrufezeichen hat NUR die Fubktion zum erkennen der Schriftart. Danach wird es NICHT mehr gebraucht.PHP-Code:elseif(!empty($matches[3][$i])) {
$Arial_Font[] = substr($zeahler, 1).'Arial_Normal';
}
-
-
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)
Bei "$matches[1]" wird die Variable auf kleine Zeichen geprüft. Also kleingeschriebe Buchstaben. Bei Treffer wird "Arial_Normal" verwendet.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($zeahler, 1).'Arial_Normal';
}
else
{
$Arial_Font[] = 'Arial_Bold';
}
}
}
else
{
$Arial_Font[] = array();
}
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:
Wenn später die Grafiken geladen werden, weiss das Skript anhand dieses Codes in welchen Ordner es die Grafik findet.PHP-Code:$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
Entweder:
/images/sig/font_grafik/Arial_Bold/blue/
oder
/images/sig/font_grafik/Arial_Normal/blue/
-
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ß
-
Ja! Es funktioniert!
-
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
-
-
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ß
-
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.
Die @-Zeichen sollen wie die normalen Buchstaben und Zahlen erkannt werden und ihren eigenen Pfad bekommen wie z.B. Arial_Normal oder Arial_Bold.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>';
-
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ß
-
Mein aktuelles "Pattern" sieht so aus:
Soll ich nun das neue von dir verwenden oder wie? Die sehen ja grundsätzlich verschieden aus.PHP-Code:$pattern = '#(![A-Z0-9ÄÖÜ])|([A-Z0-9ÄÖÜ])#i';
Kannst du bitte zum Abschluss dieses Threads das erste Pattern (oben) um das @-Zeichen erweitern?PHP-Code:$pattern = '/([a-z]|![0-9])|([A-Z0-9])/';
Ähnliche Themen
-
Grafiken laden lange, trotz in Resources enthalten
Von i123 im Forum .NET Grafik und SoundAntworten: 7Letzter Beitrag: 12.05.10, 18:56 -
Grafiken laden
Von Len-ni im Forum C/C++Antworten: 5Letzter Beitrag: 16.01.08, 19:30 -
Grafiken aus Cache laden....
Von bernhardp im Forum HTML & XHTMLAntworten: 1Letzter Beitrag: 21.06.05, 11:12 -
Grafiken im Hintergrund laden
Von NoGi im Forum HTML & XHTMLAntworten: 1Letzter Beitrag: 23.04.03, 11:44 -
Bei mouse over 2 Grafiken laden...
Von Oxygen im Forum Javascript & AjaxAntworten: 13Letzter Beitrag: 26.02.02, 13:55



33Danke

Zitieren

Login






[PHP][Snippet] Array zu XML konvertieren