Hello,
Ich habe das jetzt mal mit dem Array versucht:
#$metasum = "bigint(20) unsigned";
$metasum = "set('EINS','ZWEI','DREI','VIER','FÜNF')";
#$metasum = "double(11,5)";
#$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}((([^)]+)))*(\s(unsigned){1})*#i",
$metasum, $matches);
echo "<pre>";
print_r($matches);
echo "</pre>";
Aber wenn man da z.B. statt "set(...)" "seti(...)" übergibt, passt das ja auch. Wie bekomme ich denn hin, dass nur ganz exact die Typen matchen und dann erst eine Klammer oder ggf noch ein Leerzeichen, falls das in anderen MySQL-Versioenn noch so war) kommen muss?
Liebe Grüße aus http://www.braunschweig.de
Tom
Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen