quindi il risultato sara' un array ordinato con una chiave per ogni "nome-gruppo" e i relativi valori chiave per ogni sotto-gruppocodice:// $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" } }
Ora non devi far altro che orgenizzarti un ciclo per strutturare la query


Rispondi quotando