Hello,
Wie bekomme ich es hin, dass der zweite Wert der dezimalen Angabe (also hinter dem Komma) in einem eigenen Match auftritt, wenn er vorhanden ist.
Also bei "decimal(10,2)" sollten die 10 und die 2 jeweils in einem eigenen match auftreten
Formatbeispiele:
# bigint(20) unsigned
# timestamp(14)
# varchar(30)
# set('EINS','ZWEI','DREI','VIER','FÜNF')
# float(11,10)
# double(11,5)
# decimal(10,2)
# year(2)
# char(2)
# enum('eins','zwei','sieben','12')
$metasum = "bigint(20) unsigned";
#$metasum = "set('EINS','ZWEI','DREI','VIER','FÜNF')";
#$metasum = "double(11,5)";
#$metasum = "timestamp(14)";
#$metasum = "time";
#$type="([a-z]{3,})";
$type="tinyint|smallint|mediumint|int|bigint|float|double|decimal|".
"date|datetime|timestamp|time|year|char|varchar|tinyblob|".
"tinytext|text|blob|mediumblob|mediumtext|longblob|longtext|".
"enum|set";
#$len="([0-9]{1,3})";
#$dec=",([0-9]{1,3})";
preg_match("#^($type){1}(({1}([^)]+)){1})*(\s(unsigned){1})*#i",
$metasum, $matches);
Harzliche Grüße vom Berg
http://www.annerschbarrich.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
Nur selber lernen macht schlau