fechaPagina(); exit; } $genopar = new Genopar(__FILE__); $genopar->abrePagina("Atualizar Lista de E.C. Numbers"); $localFile = getECtable($genopar); $ECnumbers = parse($genopar,$localFile); update($genopar, $ECnumbers); $genopar->fechaPagina(); function getECtable($genopar){ $server = "ftp.genome.jp"; $serverFile = "pub/kegg/ligand/enzyme/ECtable"; $localFile = $genopar->dir_padrao."/tmp/ECtable"; $USER = "anonymous"; $PASS = "nada@lugar.algum"; $con = ftp_connect($server) or $genopar->error("server indisponível."); ftp_login($con, $USER, $PASS); ftp_get($con, $localFile, $serverFile, FTP_BINARY) or $genopar->error("Impossible to download the file."); ftp_close($con); return $localFile; } function parse($genopar, $table){ $ECnumbers = array(); $lines = file($table); foreach ($lines as $line_num => $line) { if (preg_match("/^A/", $line)){ $split = preg_split("/@/", $line); $info = $split[1]; $info = preg_split("/\s/", $info); $EC = trim($info[0]); $enz = $info[1]; $ECnumbers[$EC] = trim($enz); }elseif(preg_match("/^[B|C]/", $line)){ preg_match("/[\d\.]+[\d-]+/",$line,$EC); $EC = trim($EC[0]); preg_match_all("/\s\w+/",$line,$enz); $enz = join(" ",$enz[0]); $ECnumbers[$EC] = trim($enz); }elseif(preg_match("/^D/", $line)){ $count = 0; $preArr = array(); $prefix = ''; $chars = preg_split('//', $line, -1, PREG_SPLIT_NO_EMPTY); while(!preg_match("/D\s+(\d+\.){3}\d+\s+/", $prefix) and $count < 20){ $shift = array_shift($chars); array_push($preArr, $shift); $prefix = join("", $preArr); $count++; } $split = preg_split("/\s+/", $prefix); $EC = trim($split[1]); $enz = join("",$chars); $ECnumbers[$EC] = trim($enz); } } return $ECnumbers; } function update($genopar, $ECnumbers){ $genopar->abreBanco(); $q = "DROP TABLE ECnumbers"; $genopar->queryBanco($q); $q = " CREATE TABLE `ECnumbers` ( `numero` varchar(15) default NULL, `enzima` text ) ENGINE=MyISAM DEFAULT CHARSET=latin1"; $genopar->queryBanco($q); foreach ($ECnumbers as $EC => $enz){ $Enz = addslashes($enz); $q = "INSERT into `ECnumbers` VALUES ('$EC', '$Enz')"; $genopar->queryBanco($q); } $genopar->fechaBanco(); } ?>