<?php
	if(isset($_POST['upload'])){
    //Список разрешенных файлов
    $whitelist = array(".xml");         
	$data = array();
	$error = true;
	
	//Проверяем разрешение файла
    foreach  ($whitelist as  $item) {
		if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false;
    }

    //если нет ошибок, грузим файл
    if(!$error) { 
    	   	  
		$folder =  '../KV/';//директория в которую будет загружен файл
		
		$uploadedFile =  $folder.basename($_FILES['userfile']['name']);
				
		if(is_uploaded_file($_FILES['userfile']['tmp_name'])){
		
			if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){
		
		        $data = $_FILES['userfile'];
			}
			else {	
				echo "Во время загрузки файла произошла ошибка";
			}
		}
		else {	
			echo "Файл не  загружен";
		}
    }
    else{
    	
		echo 'Вы загружаете запрещенный тип файла';
    }
	$f = fopen('../KV/'.$data['name'], 'r');
	$fout = fopen('../KV/Reprocessed_'.$data['name'], "w");
	$out = "";
	while(!feof($f)){
		$str = fgetc($f);
		if($str == "<")
			$out .= "\n<";
		if($str == ">")
			$out .= ">\n";
		if($str != ">" && $str != "<")
			$out .= $str;
	}
	fwrite($fout, $out);
	fclose($fout);
	fclose($f);
	$f = fopen('../KV/Reprocessed_'.$data['name'], 'r');
	$i = 0;
	while(!feof($f)){
		$str = fgets($f);
		if(strpos($str, "Spatial_Element") && !strpos($str, "/Spatial_Element")){
			$out = "0\nSECTION\n 2\nENTITIES\n 0\n";
			$i++;
			$flag = 0;
			echo "<br><br>Контур ".$i."<br><br>";
		}
		if(strpos($str, "/Spatial_Element")){
			$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstpointY."\n 21\n".$firstpointX."\n 0\n";
			$out .= "ENDSEC\n 0\nEOF";
			$fout = fopen("../dxf/".$i.".dxf", "w");
			fwrite($fout, $out);
			fclose($fout);
		}
		if(strpos($str, "Ordinate")){
			for($j = 1;;$j++){
				if($str[$j] == "\"")
					break;
			}
			for($j = $j + 1;;$j++){
				if($str[$j] == "\"")
					break;
				$X .= $str[$j];				
			}
			for($j = $j + 1;;$j++){
				if($str[$j] == "\"")
					break;
			}
			for($j = $j + 1;;$j++){
				if($str[$j] == "\"")
					break;
				$Y .= $str[$j];				
			}
			if($flag == 0){
				$lastX = $X;
				$lastY = $Y;
				$firstpointX = $X;
				$firstpointY = $Y;
				$flag = 1;
			}else{
				$firstX = $lastX;
				$firstY = $lastY;
				$lastX = $X;
				$lastY = $Y;
				$out .= "LINE\n 8\n0\n 10\n".$firstY."\n 20\n".$firstX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n";
			}
			echo $Y.",".$X."<br>";
			$X = "";
			$Y = "";
		}
	}
	$zip = new ZipArchive();
	$zip->open("../dxf/dxf.zip", ZIPARCHIVE::CREATE);
	for($j = 1; $j <= $i; $j++){
		$filecontents = file_get_contents("../dxf/".$j.".dxf");
		$zip->addFromString($j.".dxf", $filecontents); 
	}
	$zip->close();
}
	
?>