codice:
// $myFileReaded sara' il contenuto del file
// elimino i commenti
$myFile = preg_replace( "/(?i)\\\\([^\a]+?)\[/i", " [", $myFileReaded );
// riorganizzo il nome tra quadre
$myFile = preg_replace( "/(?i)([[:space:]]+)(\[)([a-z]+)(\])/", "@NAME=\\3", $myFile );
// elimino gli 'a capo' superflui
$myFile = preg_replace( "/(?i)([\r|\n]+)/", "|", $myFile );
// esplodo l' array per gruppi con la @
$myArray = explode( "@", $myFile );
$queryArray = Array(); // array ordinato per chiavi
$nodeName = ""; // nome per ogni gruppo
for( $a = 0, $b = count( $myArray ); $a < $b; $a++ ) {
if( ( $myArray[$a] = trim($myArray[$a]) ) != "" ) {
$myArray[$a] = explode( "|", $myArray[$a] );
for( $c = 0, $d = count( $myArray[$a] ); $c < $d; $c++ ) {
if( ( $myArray[$a][$c] = trim($myArray[$a][$c]) ) != "" ) {
$myArray[$a][$c] = explode( "=", $myArray[$a][$c] );
if( $myArray[$a][$c][0] == "NAME" ) {
$queryArray[$myArray[$a][$c][1]] = Array();
$nodeName = $myArray[$a][$c][1];
}
else {
$queryArray[$nodeName][$myArray[$a][$c][0]] = $myArray[$a][$c][1];
}
}
}
}
}
echo "<pre>";
var_dump( $queryArray );
echo "</pre>";
// il var_dump dara' come risultato quanto segue:
array(4) {
["Firestorm"]=>
array(12) {
["PLEVEL"]=>
string(2) "GM"
["PRIV"]=>
string(5) "0104a"
["PASSWORD"]=>
string(3) "123"
["TOTALCONNECTTIME"]=>
string(2) "23"
["LASTCONNECTTIME"]=>
string(1) "4"
["LASTCHARUID"]=>
string(5) "04543"
["CHARUID"]=>
string(5) "04543"
["FIRSTCONNECTDATE"]=>
string(19) "2004/01/10 16:24:14"
["FIRSTIP"]=>
string(14) "80.183.127.235"
["LASTCONNECTDATE"]=>
string(19) "2004/01/10 16:46:19"
["LASTIP"]=>
string(14) "80.183.127.235"
["LANG"]=>
string(3) "ITA"
}
["Himeko"]=>
array(12) {
["PLEVEL"]=>
string(5) "Admin"
["PRIV"]=>
string(5) "0104a"
["PASSWORD"]=>
string(4) "ciao"
["TOTALCONNECTTIME"]=>
string(3) "532"
["LASTCONNECTTIME"]=>
string(2) "87"
["LASTCHARUID"]=>
string(5) "06260"
["CHARUID"]=>
string(5) "06260"
["FIRSTCONNECTDATE"]=>
string(19) "2003/07/05 19:27:25"
["FIRSTIP"]=>
string(9) "127.0.0.1"
["LASTCONNECTDATE"]=>
string(19) "2004/03/08 16:34:16"
["LASTIP"]=>
string(9) "127.0.0.1"
["LANG"]=>
string(3) "ITA"
}
["Lod"]=>
array(3) {
["PLEVEL"]=>
string(2) "GM"
["PRIV"]=>
string(5) "0104a"
["PASSWORD"]=>
string(3) "bao"
}
["Michelangelo"]=>
array(12) {
["PLEVEL"]=>
string(2) "GM"
["PRIV"]=>
string(5) "0104a"
["PASSWORD"]=>
string(4) "miao"
["TOTALCONNECTTIME"]=>
string(2) "73"
["LASTCONNECTTIME"]=>
string(2) "27"
["LASTCHARUID"]=>
string(5) "04576"
["CHARUID"]=>
string(5) "04576"
["FIRSTCONNECTDATE"]=>
string(19) "2003/07/14 18:05:29"
["FIRSTIP"]=>
string(14) "80.116.236.118"
["LASTCONNECTDATE"]=>
string(19) "2003/07/14 18:58:55"
["LASTIP"]=>
string(14) "80.116.236.118"
["LANG"]=>
string(3) "ita"
}
}
quindi il risultato sara' un array ordinato con una chiave per ogni "nome-gruppo" e i relativi valori chiave per ogni sotto-gruppo
Ora non devi far altro che orgenizzarti un ciclo per strutturare la query