save($arquivo); $mapa = ms_newMapObj($arquivo); // //modifica os layers // $c = $mapa->numlayers; $remover = array(); //guarda os nomes dos metadados pq removeMetaData nao funciona for ($i=0;$i < $c;++$i){ $l = $mapa->getlayer($i); // //tratamento para layers que contem dados via base de dados // $ct = $l->connectiontype; if($ct != MS_INLINE && $ct != MS_WMS && $ct != MS_GRATICULE){ $l->set("connection",""); $l->set("data",""); // //remove os metadata // $hashTable = $l->metadata; $key = null; while ($key = $hashTable->nextkey($key)){ if(!in_array(strtolower($key),array("tema","nomeoriginal"))){ //echo "Key: ".$key." value: ".$hashTable->get($key)."
"; $l->setmetadata($key,""); if($ct != MS_WMS){ $remover[] = strtoupper($key); } } } } } $remover = array_unique($remover); $mapa->save($arquivo); $mapa = null; removeCabecalho($arquivo,$remover); header("Content-Type:text/plain"); header('Content-Disposition: attachment; filename="'.basename($arquivo).'"'); readfile($arquivo); function removeCabecalho($arq,$remover){ global $locaplic; //locaplic pode ser um endereco baseado no link simbolico. Por isso utiliza-se apenas o nome da pasta principal $pasta = basename($locaplic); $handle = fopen($arq, "r"); if ($handle){ $cabeca = array(); //$cabeca[] = "MAP\n"; $grava = false; while (!feof($handle)){ $linha = fgets($handle); if(strpos(strtoupper($linha),"SYMBOLSET") !== false){ //$cabeca[] = '"..'.explode($pasta,$linha)[1]; } if(strpos(strtoupper($linha),"FONTSET") !== false){ //$cabeca[] = '"..'.explode($pasta,$linha)[1]; } if(strtoupper(trim($linha)) == "LAYER"){ $grava = true; } if($grava){ $final[] = rtrim($linha, "\r\n") . PHP_EOL; } } fclose($handle); } $final = array_merge($cabeca,$final); $handle = fopen($arq, "w+"); $testar = array("KEYIMAGE","TILEINDEX","TILEITEM","SYMBOL","LABELITEM","FILTERITEM","GROUP","ENCODING","TIP","CLASSE","ITENSDESC","CLASSESNOME","ITENSLINK","ESCALA","CLASSESSIMBOLO","MENSAGEM","EXTENSAO","CLASSESITEM","ESCONDIDO","CLASSESCOR","DOWNLOAD","CLASSESTAMANHO","ITENS","TEMA","APLICAEXTENSAO","IDENTIFICA"); $testar = array_merge($testar,$remover); foreach ($final as $f){ // //remove resultados em branco //e grava a linha // $teste = strtoupper($f); $teste = trim($teste); $teste = str_replace(" ","",$teste); $teste = str_replace("'","",$teste); $teste = str_replace('"',"",$teste); $teste = preg_replace('/[\n\r\t ]*/', '', $teste); $passou = true; foreach ($testar as $t) { if($teste == $t){ $passou = false; } } if($passou){ fwrite($handle,$f); } } fclose($handle); } ?>