\n"; switch ($error->level) { case LIBXML_ERR_WARNING: $return .= "ПРЕДУПРЕЖДЕНИЕ $error->code: "; break; case LIBXML_ERR_ERROR: $return .= "ОШИБКА $error->code: "; break; case LIBXML_ERR_FATAL: $return .= "ФАТАЛЬНАЯ ОШИБКА $error->code: "; break; } $flag = 0; if($error->code == "1874"){ $return .= "Элемент '"; $errmes = trim($error->message); for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " содержит атрибут '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= ", имеющий значение '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= ", которое не совпадает с фиксированным значением '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= "."; $flag = 1; } if($error->code == "1871"){ $errmes = trim($error->message); $pos = strpos($errmes, "Missing child element(s)."); if($pos){ $return .= "В элементе '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " не хватает дочернего(их) элемента(ов), ожидается(ются) элемент(ы) '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "(" && $errmes[$i + 1] == " ") break; } for($i = $i + 2;;$i++){ $return .= $errmes[$i]; if($errmes[$i + 1] == " " && $errmes[$i + 2] == ")") break; } $return .= "'."; } $pos = strpos($errmes, "This element is not expected."); if($pos){ $pos = strpos($errmes, "This element is not expected. Expected"); if($pos){ $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " находится в недопустимом месте, ожидается(ются) элемент(ы) '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "(" && $errmes[$i + 1] == " ") break; } for($i = $i + 2;;$i++){ $return .= $errmes[$i]; if($errmes[$i + 1] == " " && $errmes[$i + 2] == ")") break; } $return .= "'."; }else{ $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " находится в недопустимом месте."; } } $flag = 1; } if($error->code == "1824"){ $errmes = trim($error->message); $pos = strpos($errmes, ", attribute"); if($pos){ $return .= "В элементе '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " атрибут '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет значение '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= ", которое не соответствует его типу."; }else{ $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет значение '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= ", которое не соответствует его типу."; } $flag = 1; } if($error->code == "1828"){ $errmes = trim($error->message); $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " должен содержать внутри себя его значение, а найден другой элемент."; $flag = 1; } if($error->code == "1840"){ $errmes = trim($error->message); $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " содержит значение, которое не входит в список допустимых, например: "; for($i = $i + 1;;$i++){ if($errmes[$i] == "{") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i + 1] == "}") break; } $return .= "."; $flag = 1; } if($error->code == "1831"){ $errmes = trim($error->message); if(strpos($errmes, ", attribute")){ $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет атрибут '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " со значением '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " длинной '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " символа(ов), поэтому не достигает необходимый минимум в '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " символа(ов)."; }else{ $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет длинну значения '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " символа(ов), поэтому не достигает необходимый минимум в '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " символа(ов)."; } $flag = 1; } if($error->code == "1832"){ $errmes = trim($error->message); if(strpos($errmes, ", attribute")){ $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет атрибут '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " со значением '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " длинной '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " символа(ов), поэтому превышает обязательный максимум в '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " символа(ов)."; }else{ $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет длинну значения '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " символа(ов), поэтому превышает обязательный максимум в '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " символа(ов)."; } $flag = 1; } if($error->code == "1839"){ $errmes = trim($error->message); $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " содержит атрибут '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= ", имеющий значение '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= ", которое не соответствует шаблону '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= "."; $flag = 1; } if($error->code == "1833"){ $errmes = trim($error->message); $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет значение '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= ", которое является меньшим, чем минимально допустимое: '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= "."; $flag = 1; } if($error->code == "1834"){ $errmes = trim($error->message); $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет значение '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= ", которое является большим, чем максимально допустимое: '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= "."; $flag = 1; } if($error->code == "1843"){ $errmes = trim($error->message); $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " имеет внутри себя символы, выходящие за пределы контейнеров <>."; $flag = 1; } if($error->code == "1845"){ $errmes = trim($error->message); $return .= "Элемент '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " не найден в XML-схеме."; $flag = 1; } if($error->code == "1868"){ $errmes = trim($error->message); $return .= "В элементе '"; for($i = 9;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= " не хватает обязательного атрибута '"; for($i = $i + 1;;$i++){ if($errmes[$i] == "'") break; } for($i = $i + 1;;$i++){ $return .= $errmes[$i]; if($errmes[$i] == "'") break; } $return .= "."; $flag = 1; } if($flag == 0) $return .= trim($error->message); return $return; } function libxml_display_errors() { $errors = libxml_get_errors(); foreach ($errors as $error) { print libxml_display_error($error); } libxml_clear_errors(); } // Enable user error handling libxml_use_internal_errors(true); if($_POST['Type'] == "TP"){ $flag = 0; if(isset($_POST['upload'])){ //Список разрешенных файлов $whitelist = array(".zip"); $data = array(); $error = true; //Проверяем разрешение файла foreach ($whitelist as $item) { if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false; } //если нет ошибок, грузим файл if(!$error){ $folder = 'upload';//директория в которую будет загружен файл $uploadedFile = "upload/".$_FILES['userfile']['name']; if(is_uploaded_file($_FILES['userfile']['tmp_name'])){ if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){ $data = $_FILES['userfile']; $flag = 1; echo "Файл успешно загружен! ".$data['name']; } else { echo "Во время загрузки файла произошла ошибка"; } } else { echo "Файл не загружен ".$_FILES['userfile']['tmp_name']; } } else{ echo 'Вы загружаете запрещенный тип файла'; } } echo "
"; if($flag == 1){ $flag1 = 0; $zip = new ZipArchive; $filenames = array(); $files = array(); if ($zip->open('upload/'.$data['name']) === true){ for($i = 0; $i < $zip->numFiles; $i++){ $files[$i] = "/".$zip->getNameIndex($i); $folder = 0; if(strpos($zip->getNameIndex($i), ".xml") !== false){ echo ""; $folder = 1; } if(strpos($zip->getNameIndex($i), ".dwg") !== false){ echo ""; $folder = 1; } if(strpos($zip->getNameIndex($i), ".xls") !== false || strpos($zip->getNameIndex($i), ".xlsx") !== false){ echo ""; $folder = 1; } if(strpos($zip->getNameIndex($i), ".tpo") !== false){ echo ""; $folder = 1; } if(strpos($zip->getNameIndex($i), ".jpg") !== false){ echo ""; $folder = 1; } if($folder == 0){ echo ""; } echo ""; if(strpos($zip->getNameIndex($i), ".xml") !== false && strpos($zip->getNameIndex($i), ".sig") === false){ $filenames[$i] = $zip->getNameIndex($i); $fileindex = $i; } } $NumFiles = $i; echo "
Структура архива:
".iconv("cp866", "windows-1251", $zip->getNameIndex($i))."
"; echo "
"; if(!is_dir("unzip/".$data['name'])) mkdir("unzip/".$data['name'], 0777); $zip->extractTo("unzip/".$data['name']); $zip->close(); echo "Читаю файл ".$filenames[$fileindex]."

"; $DOM = new DOMDocument(); $DOM->load('unzip/'.$data['name'].'/'.$filenames[$fileindex]); if (!$DOM->schemaValidate('C:\Разработка\doc_V02_STD_TP\V02_STD_TP\STD_TP.xsd')) { print 'Файл не прошёл валидацию!'; libxml_display_errors(); }else{ echo "Файл валидный!"; } }else{ echo 'А архивчик-то, битый!'; $flag1 = 1; } } echo "
"; //Общие сведения $xml = new DOMDocument(); $xml->load('unzip/'.$data['name'].'/'.$filenames[$fileindex]); $xml->encoding = 'utf-8'; echo "
Кадастровый инженер
"; $Eng_Type = $xml->getElementsByTagName("Cadastral_Engineer")->item(0); foreach($Eng_Type->childNodes as $CadEng){ if($CadEng->nodeName == "FIO"){ foreach($CadEng->childNodes as $FIO){ if($FIO->nodeName == "Surname"){ echo iconv('utf-8', 'windows-1251', $FIO->nodeValue); } if($FIO->nodeName == "First"){ echo iconv('utf-8', 'windows-1251', " ".$FIO->nodeValue); } if($FIO->nodeName == "Patronymic"){ echo iconv('utf-8', 'windows-1251', " ".$FIO->nodeValue); } } } } echo "
"; echo ""; if(is_object($Obj_Type = $xml->getElementsByTagName("Building")->item(0))){ if(is_object($Building_Type = $xml->getElementsByTagName("New_Building")->item(0))){ $CadNumPar = $xml->getElementsByTagName("CadastralNumberParent")->item(0); echo ""; $Scheme = $xml->getElementsByTagName("Scheme_Geodesic_Plotting")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ /*if($files[$i] == $FileGeo){ $SchemeFlag = 1; }*/ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } $Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ /*if($files[$i] == $FileGeo){ $SchemeFlag = 1; }*/ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } $Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ /*if($files[$i] == $FileGeo){ $SchemeFlag = 1; }*/ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } if(is_object($Method = $xml->getElementsByTagName("Method")->item(0))){ $Meth['1'] = "Раздел"; $Meth['2'] = "Выдел"; $Meth['9'] = "Иное"; $Method = $xml->getElementsByTagName("Method")->item(0); echo ""; } echo ""; } if(is_object($Building_Type = $xml->getElementsByTagName("Exist_Building")->item(0))){ $CadNum = $xml->getElementsByTagName("Number_Register")->item(0); echo ""; $Scheme = $xml->getElementsByTagName("Scheme_Geodesic_Plotting")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ /*if($files[$i] == $FileGeo){ $SchemeFlag = 1; }*/ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } $Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ /*if($files[$i] == $FileGeo){ $SchemeFlag = 1; }*/ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } $Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ /*if($files[$i] == $FileGeo){ $SchemeFlag = 1; }*/ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } echo ""; } if(is_object($ParentNum = $xml->getElementsByTagName("Parent_CadastralNumbers")->item(0))){ $first = 0; foreach($ParentNum->childNodes as $CadastralNum){ if($CadastralNum->nodeName == "CadastralNumber"){ if($first == 0){ echo ""; $first = 1; }else{ echo ""; } } } } $PrevNums = $xml->getElementsByTagName("Cad_Number_Prev")->item(0); if(is_object($PrevNums)){ $first = 0; foreach($PrevNums->childNodes as $PrevNum){ if($PrevNum->nodeName == "CadastralNumber"){ if($first == 0){ echo ""; $first = 1; }else{ echo ""; } } } } $Assignation['204001000000'] = "Нежилое здание"; $Assignation['204002000000'] = "Жилой дом"; $Assignation['204003000000'] = "Многоквартирный дом"; $Assig_C = $xml->getElementsByTagName("Assignation_Code")->item(0); echo ""; $Area = $xml->getElementsByTagName("Area")->item(0); echo ""; $Floors = $xml->getElementsByTagName("Floors")->item(0); echo ""; echo ""; echo "
Общие сведения
Здание, постановка на учет
Схема геодезических построенийНа месте!
Схема геодезических построенийОтсутствует!
Схема расположения зданияНа месте!
Схема расположения зданияОтсутствует!
Чертеж контура зданияНа месте!
Чертеж контура зданияОтсутствует!
Метод образования".$Meth[$Method->nodeValue]."
Кадастровый квартал".$CadNumPar->nodeValue."Посмотреть на кадастровой карте
Здание, уточнение
Схема геодезических построенийНа месте!
Схема геодезических построенийОтсутствует!
Схема расположения зданияНа месте!
Схема расположения зданияОтсутствует!
Чертеж контура зданияНа месте!
Чертеж контура зданияОтсутствует!
Кадастровый номер".$CadNum->childNodes->item(0)->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре
Кадастровый номер земли".$CadastralNum->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре
".$CadastralNum->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре
Объект, из которого образовано здание".$PrevNum->nodeValue."Проверить на росреестре
".$PrevNum->nodeValue."Проверить на росреестре
Назначение".$Assignation[$Assig_C->nodeValue]."
Площадь".$Area->nodeValue."
Этажность".$Floors->getAttribute('Floors')."
Подземная этажность".$Floors->getAttribute('Underground_Floors')."
"; //Инвентарные номера $OldNums = $xml->getElementsByTagName("Old_Numbers")->item(0); if(is_object($OldNums)){ echo ""; $i = 1; $NumType["01"] = "Инвентарный"; $NumType["02"] = "Условный"; $NumType["03"] = "Кадастровый"; $NumType["99"] = "Иной"; foreach($OldNums->childNodes as $OldNum){ if($OldNum->nodeName == "Old_Number"){ echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } } echo "
Инвентарные номера
№ п/пТипНомерДата присвоенияОрганизация
".$i."".$NumType[$OldNum->getAttribute('Type')]."".$OldNum->getAttribute('Number')."".$OldNum->getAttribute('Date')."".iconv('utf-8', 'windows-1251', $OldNum->getAttribute('Organ'))."
"; } //Правообладатель echo ""; $Client_Type = $xml->getElementsByTagName("Client")->item(0); foreach($Client_Type->childNodes as $Client){ if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance") break; } if($Client->nodeName == "Person"){ echo ""; echo ""; } if($Client->nodeName == "Organization"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } if($Client->nodeName == "Governance"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } echo "
Правообладатель
Физическое лицо
ФИО"; foreach($Client->childNodes as $FIO){ if($FIO->nodeName == "FIO"){ foreach($FIO->childNodes as $Person){ if($Person->nodeName == "Surname"){ echo iconv('utf-8', 'windows-1251', $Person->nodeValue); } if($Person->nodeName == "First"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } if($Person->nodeName == "Patronymic"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } } } } echo "
Юридическое лицо
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
Орган гос. власти
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
"; //Адрес echo ""; if(is_object($Loc = $xml->getElementsByTagName("Code_OKATO")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Code_KLADR")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Postal_Code")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("District")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("City")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Urban_District")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Soviet_Village")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Locality")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Street")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level1")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level2")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level3")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Apartment")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Other")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Note")->item(0))) echo ""; echo "
Адрес
ОКАТО".$Loc->nodeValue."
КЛАДР".$Loc->nodeValue."
Индекс".$Loc->nodeValue."
Район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Город".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Городской район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Сельсовет".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Населенный пункт".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Улица".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Дом".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Корпус".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Строение".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Квартира".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Иное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
Неформализованное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
"; //Чертеж echo ""; $Entity_Spatial = $xml->getElementsByTagName("Entity_Spatial")->item(0); $out = "0\nSECTION\n 2\nENTITIES\n 0\n"; foreach($Entity_Spatial->childNodes as $Spatial_Element){ $first = 0; if($Spatial_Element->nodeName == "Spatial_Element"){ foreach($Spatial_Element->childNodes as $Spelement_Unit){ if($Spelement_Unit->nodeName == "Spelement_Unit"){ foreach($Spelement_Unit->childNodes as $Ordinate){ if($Ordinate->nodeName == "Ordinate"){ if($first == 0){ $firstpointX = $Ordinate->getAttribute('X'); $firstpointY = $Ordinate->getAttribute('Y'); $R = $Ordinate->getAttribute('R'); $firstX = $firstpointX; $firstY = $firstpointY; $first = 1; if($FirstCont == 0){ $out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n"; $FirstCont = 1; } if($R){ $out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n".$R."\n 62\n5\n 0\n"; } }else{ $lastX = $Ordinate->getAttribute('X'); $lastY = $Ordinate->getAttribute('Y'); $out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 62\n5\n 0\n"; $firstpointX = $lastX; $firstpointY = $lastY; } } } } } if(!$R){ $out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 62\n5\n 0\n"; } } } $out .= "ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name']."/".$filenames[$fileindex].".dxf", "w"); fwrite($fout, $out); fclose($fout); echo ""; echo "
Чертеж
"; echo ""; $Conclusion = $xml->getElementsByTagName("Conclusion")->item(0); $concl = $Conclusion->nodeValue; echo ""; echo "
Заключение кадастрового инженера
".iconv('utf-8', 'windows-1251', $concl)."
"; } //-------------------------------------------------------------------------------------------- //Сооружение if(is_object($Obj_Type = $xml->getElementsByTagName("Construction")->item(0))){ if(is_object($Construction_Type = $xml->getElementsByTagName("New_Construction")->item(0))){ $Type = "New"; $CadNumPar = $xml->getElementsByTagName("CadastralNumberParent")->item(0); echo "Сооружение, постановка на учет"; $Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Схема расположения зданияНа месте!"; }else{ echo "Схема расположения зданияОтсутствует!"; } } } $Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Чертеж контура зданияНа месте!"; }else{ echo "Чертеж контура зданияОтсутствует!"; } } } if(is_object($Method = $xml->getElementsByTagName("Method")->item(0))){ $Meth['1'] = "Раздел"; $Meth['2'] = "Выдел"; $Meth['9'] = "Иное"; $Method = $xml->getElementsByTagName("Method")->item(0); echo "Метод образования".$Meth[$Method->nodeValue].""; } echo "Кадастровый квартал".$CadNumPar->nodeValue."Посмотреть на кадастровой карте"; } if(is_object($Construction_Type = $xml->getElementsByTagName("Exist_Construction")->item(0))){ $Type = "Exist"; $CadNum = $xml->getElementsByTagName("Number_Register")->item(0); echo "Сооружение, уточнение"; $Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Схема расположения зданияНа месте!"; }else{ echo "Схема расположения зданияОтсутствует!"; } } } $Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Чертеж контура зданияНа месте!"; }else{ echo "Чертеж контура зданияОтсутствует!"; } } } echo "Кадастровый номер".$CadNum->childNodes->item(0)->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре"; } if(is_object($ParentNum = $xml->getElementsByTagName("Parent_CadastralNumbers")->item(0))){ $first = 0; foreach($ParentNum->childNodes as $CadastralNum){ if($CadastralNum->nodeName == "CadastralNumber"){ if($first == 0){ echo "Кадастровый номер земли".$CadastralNum->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре"; $first = 1; }else{ echo "".$CadastralNum->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре"; } } } } if($Type == "New") $Construction_Type = $xml->getElementsByTagName("New_Construction")->item(0); if($Type == "Exist") $Construction_Type = $xml->getElementsByTagName("Exist_Construction")->item(0); foreach($Construction_Type->childNodes as $ConName){ if($ConName->nodeName == "Name") echo "Наименование".iconv('utf-8', 'windows-1251', $ConName->nodeValue).""; if($ConName->nodeName == "Assignation_Name") echo "Назначение".iconv('utf-8', 'windows-1251', $ConName->nodeValue).""; if($ConName->nodeName == "Key_Parameter"){ $KeyParameter['01'] = 'Протяженность'; $KeyParameter['02'] = 'Глубина'; $KeyParameter['03'] = 'Объем'; $KeyParameter['04'] = 'Высота'; $KeyParameter['05'] = 'Площадь'; $KeyParameter['06'] = 'Площадь застройки'; $KeyPar = $ConName->getAttribute('Type'); echo "Основная характеристика".$KeyParameter[$ConName->getAttribute('Type')].' - '.$ConName->getAttribute('Value').""; } if($ConName->nodeName == "Entity_Spatial"){ $Entity_Spatial = $ConName; } } if(is_object($Floors = $xml->getElementsByTagName("Floors")->item(0))){ echo "Этажность".$Floors->getAttribute('Floors').""; echo "Подземная этажность".$Floors->getAttribute('Underground_Floors').""; } echo ""; //Правообладатель echo ""; $Client_Type = $xml->getElementsByTagName("Client")->item(0); foreach($Client_Type->childNodes as $Client){ if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance") break; } if($Client->nodeName == "Person"){ echo ""; echo ""; } if($Client->nodeName == "Organization"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } if($Client->nodeName == "Governance"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } echo "
Правообладатель
Физическое лицо
ФИО"; foreach($Client->childNodes as $FIO){ if($FIO->nodeName == "FIO"){ foreach($FIO->childNodes as $Person){ if($Person->nodeName == "Surname"){ echo iconv('utf-8', 'windows-1251', $Person->nodeValue); } if($Person->nodeName == "First"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } if($Person->nodeName == "Patronymic"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } } } } echo "
Юридическое лицо
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
Орган гос. власти
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
"; //Адрес echo ""; if(is_object($Loc = $xml->getElementsByTagName("Code_OKATO")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Code_KLADR")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Postal_Code")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("District")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("City")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Urban_District")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Soviet_Village")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Locality")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Street")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level1")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level2")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level3")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Apartment")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Other")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Note")->item(0))) echo ""; echo "
Адрес
ОКАТО".$Loc->nodeValue."
КЛАДР".$Loc->nodeValue."
Индекс".$Loc->nodeValue."
Район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Город".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Городской район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Сельсовет".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Населенный пункт".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Улица".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Дом".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Корпус".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Строение".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Квартира".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Иное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
Неформализованное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
"; //Чертеж if(is_object($Entity_Spatial)){ echo ""; $out = "0\nSECTION\n 2\nENTITIES\n 0\n"; foreach($Entity_Spatial->childNodes as $Spatial_Element){ $first = 0; if($Spatial_Element->nodeName == "Spatial_Element"){ foreach($Spatial_Element->childNodes as $Spelement_Unit){ if($Spelement_Unit->nodeName == "Spelement_Unit"){ foreach($Spelement_Unit->childNodes as $Ordinate){ if($Ordinate->nodeName == "Ordinate"){ if($first == 0){ $firstpointX = $Ordinate->getAttribute('X'); $firstpointY = $Ordinate->getAttribute('Y'); $R = $Ordinate->getAttribute('R'); $firstX = $firstpointX; $firstY = $firstpointY; $first = 1; if($FirstCont == 0){ $out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n"; $FirstCont = 1; } if($R){ $out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n".$R."\n 62\n5\n 0\n"; } }else{ $lastX = $Ordinate->getAttribute('X'); $lastY = $Ordinate->getAttribute('Y'); $out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 62\n5\n 0\n"; $firstpointX = $lastX; $firstpointY = $lastY; } } } } } if($KeyPar == "05" || $KeyPar == "06"){ if(!$R){ $out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 62\n5\n 0\n"; } } } } $out .= "ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name']."/".$filenames[$fileindex].".dxf", "w"); fwrite($fout, $out); fclose($fout); echo ""; echo "
Чертеж
"; } echo ""; $Conclusion = $xml->getElementsByTagName("Conclusion")->item(0); $concl = $Conclusion->nodeValue; echo ""; echo "
Заключение кадастрового инженера
".iconv('utf-8', 'windows-1251', $concl)."
"; } //Незавершенка if(is_object($Obj_Type = $xml->getElementsByTagName("Uncompleted_Construction")->item(0))){ if(is_object($Construction_Type = $xml->getElementsByTagName("New_Uncompleted_Construction")->item(0))){ $Type = "New"; $CadNumPar = $xml->getElementsByTagName("CadastralNumberParent")->item(0); echo "Незавершенка, постановка на учет"; $Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Схема расположения зданияНа месте!"; }else{ echo "Схема расположения зданияОтсутствует!"; } } } $Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Чертеж контура зданияНа месте!"; }else{ echo "Чертеж контура зданияОтсутствует!"; } } } if(is_object($Method = $xml->getElementsByTagName("Method")->item(0))){ $Meth['1'] = "Раздел"; $Meth['2'] = "Выдел"; $Meth['9'] = "Иное"; $Method = $xml->getElementsByTagName("Method")->item(0); echo "Метод образования".$Meth[$Method->nodeValue].""; } echo "Кадастровый квартал".$CadNumPar->nodeValue."Посмотреть на кадастровой карте"; } if(is_object($Construction_Type = $xml->getElementsByTagName("Exist_Uncompleted_Construction")->item(0))){ $Type = "Exist"; $CadNum = $xml->getElementsByTagName("Number_Register")->item(0); echo "Незавершенка, уточнение"; $Scheme = $xml->getElementsByTagName("Scheme_Disposition_Building")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if($files[$i] == $FileGeo){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Схема расположения зданияНа месте!"; }else{ echo "Схема расположения зданияОтсутствует!"; } } } $Scheme = $xml->getElementsByTagName("Diagram_Contour")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if($files[$i] == $FileGeo){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Чертеж контура зданияНа месте!"; }else{ echo "Чертеж контура зданияОтсутствует!"; } } } echo "Кадастровый номер".$CadNum->childNodes->item(0)->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре"; } if(is_object($ParentNum = $xml->getElementsByTagName("Parent_CadastralNumbers")->item(0))){ $first = 0; foreach($ParentNum->childNodes as $CadastralNum){ if($CadastralNum->nodeName == "CadastralNumber"){ if($first == 0){ echo "Кадастровый номер земли".$CadastralNum->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре"; $first = 1; }else{ echo "".$CadastralNum->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре"; } } } } if($Type == "New") $Construction_Type = $xml->getElementsByTagName("New_Uncompleted_Construction")->item(0); if($Type == "Exist") $Construction_Type = $xml->getElementsByTagName("Exist_Uncompleted_Construction")->item(0); foreach($Construction_Type->childNodes as $ConName){ if($ConName->nodeName == "Degree_Readiness") echo "Процент готовности".$ConName->nodeValue.""; if($ConName->nodeName == "Feature_Building"){ echo "Является зданием"; $Feature = "Building"; foreach($ConName->childNodes as $Building){ if($Building->nodeName == "Area"){ echo "Площадь".$Building->nodeValue.""; } } } if($ConName->nodeName == "Feature_Construction"){ echo "Является сооружением"; $Feature = "Construction"; foreach($ConName->childNodes as $Construction){ if($Construction->nodeName == "Name"){ echo "Наименование".iconv('utf-8', 'windows-1251', $Construction->nodeValue).""; } if($Construction->nodeName == "Assignation_Name"){ echo "Назначение".iconv('utf-8', 'windows-1251', $Construction->nodeValue).""; } if($Construction->nodeName == "Key_Parameter"){ $KeyParameter['01'] = 'Протяженность'; $KeyParameter['02'] = 'Глубина'; $KeyParameter['03'] = 'Объем'; $KeyParameter['04'] = 'Высота'; $KeyParameter['05'] = 'Площадь'; $KeyParameter['06'] = 'Площадь застройки'; echo "Основная характеристика".$KeyParameter[$Construction->getAttribute('Type')].' - '.$Construction->getAttribute('Value').""; } } } } if(is_object($Floors = $xml->getElementsByTagName("Floors")->item(0))){ echo "Этажность".$Floors->getAttribute('Floors').""; echo "Подземная этажность".$Floors->getAttribute('Underground_Floors').""; } echo ""; //Правообладатель echo ""; $Client_Type = $xml->getElementsByTagName("Client")->item(0); foreach($Client_Type->childNodes as $Client){ if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance") break; } if($Client->nodeName == "Person"){ echo ""; echo ""; } if($Client->nodeName == "Organization"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } if($Client->nodeName == "Governance"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } echo "
Правообладатель
Физическое лицо
ФИО"; foreach($Client->childNodes as $FIO){ if($FIO->nodeName == "FIO"){ foreach($FIO->childNodes as $Person){ if($Person->nodeName == "Surname"){ echo iconv('utf-8', 'windows-1251', $Person->nodeValue); } if($Person->nodeName == "First"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } if($Person->nodeName == "Patronymic"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } } } } echo "
Юридическое лицо
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
Орган гос. власти
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
"; //Адрес echo ""; if(is_object($Loc = $xml->getElementsByTagName("Code_OKATO")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Code_KLADR")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Postal_Code")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("District")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("City")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Urban_District")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Soviet_Village")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Locality")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Street")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level1")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level2")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level3")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Apartment")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Other")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Note")->item(0))) echo ""; echo "
Адрес
ОКАТО".$Loc->nodeValue."
КЛАДР".$Loc->nodeValue."
Индекс".$Loc->nodeValue."
Район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Город".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Городской район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Сельсовет".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Населенный пункт".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Улица".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Дом".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Корпус".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Строение".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Квартира".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Иное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
Неформализованное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
"; //Чертеж $Entity_Spatial = $xml->getElementsByTagName("Entity_Spatial")->item(0); if(is_object($Entity_Spatial)){ echo ""; $out = "0\nSECTION\n 2\nENTITIES\n 0\n"; foreach($Entity_Spatial->childNodes as $Spatial_Element){ $first = 0; if($Spatial_Element->nodeName == "Spatial_Element"){ foreach($Spatial_Element->childNodes as $Spelement_Unit){ if($Spelement_Unit->nodeName == "Spelement_Unit"){ foreach($Spelement_Unit->childNodes as $Ordinate){ if($Ordinate->nodeName == "Ordinate"){ if($first == 0){ $firstpointX = $Ordinate->getAttribute('X'); $firstpointY = $Ordinate->getAttribute('Y'); $R = $Ordinate->getAttribute('R'); $firstX = $firstpointX; $firstY = $firstpointY; $first = 1; if($FirstCont == 0){ $out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n"; $FirstCont = 1; } if($R){ $out .= "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n".$R."\n 62\n5\n 0\n"; } }else{ $lastX = $Ordinate->getAttribute('X'); $lastY = $Ordinate->getAttribute('Y'); $out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 62\n5\n 0\n"; $firstpointX = $lastX; $firstpointY = $lastY; } } } } } if($Feature == "Building" && !$R){ $out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 62\n5\n 0\n"; } } } $out .= "ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name']."/".$filenames[$fileindex].".dxf", "w"); fwrite($fout, $out); fclose($fout); echo ""; echo "
Чертеж
"; } echo ""; $Conclusion = $xml->getElementsByTagName("Conclusion")->item(0); $concl = $Conclusion->nodeValue; echo ""; echo "
Заключение кадастрового инженера
".iconv('utf-8', 'windows-1251', $concl)."
"; } //Помещение if(is_object($Obj_Type = $xml->getElementsByTagName("Flat")->item(0))){ if(is_object($Flat_Type = $xml->getElementsByTagName("New_Flat")->item(0))){ $Type = "New"; $CadNumPar = $xml->getElementsByTagName("CadastralNumberOKS")->item(0); echo "Помещение, постановка на учет"; $NewFlats = $xml->getElementsByTagName("New_Flat")->item(0); foreach($NewFlats->childNodes as $NewFlat){ if($NewFlat->nodeName == "Levels"){ foreach($NewFlat->childNodes as $Levels){ if($Levels->nodeName == "Level"){ $LevelNum = $Levels->getAttribute('Number'); foreach($Levels->childNodes as $Level){ if($Level->nodeName == "Position"){ foreach($Level->childNodes as $Position){ if($Position->nodeName == "Plans"){ foreach($Position->childNodes as $Plans){ if($Plans->nodeName == "Plan"){ $FileGeo = $Plans->getAttribute('File'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(".".$files[$i], $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Чертеж ".$LevelNum." этажаНа месте!"; }else{ echo "Чертеж ".$LevelNum." этажаОтсутствует!"; } } } } } } } } } } /*if($NewFlat->nodeName == "Position"){ echo "1111"; foreach($NewFlat->childNodes as $Position){ if($Position->nodeName == "Plans"){ foreach($Position->childNodes as $Plans){ if($Plans->nodeName == "Plan"){ $FileGeo = $Plans->getAttribute('File'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if($files[$i] == $FileGeo){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Чертеж помещенияНа месте!"; }else{ echo "Чертеж помещенияОтсутствует!"; } } } } } }*/ } if(is_object($Method = $xml->getElementsByTagName("Method")->item(0))){ $Meth['1'] = "Раздел"; $Meth['2'] = "Выдел"; $Meth['9'] = "Иное"; $Method = $xml->getElementsByTagName("Method")->item(0); echo "Метод образования".$Meth[$Method->nodeValue].""; } echo "Кадастровый номер здания".$CadNumPar->nodeValue."Посмотреть на кадастровой картеПроверить на росреестре"; } if(is_object($Flat_Type = $xml->getElementsByTagName("Exist_Flat")->item(0))){ $Type = "Exist"; $CadNum = $xml->getElementsByTagName("Number_Register")->item(0); echo "Помещение, уточнение"; $ExistFlats = $xml->getElementsByTagName("Exist_Flat")->item(0); foreach($ExistFlats->childNodes as $ExistFlat){ if($ExistFlat->nodeName == "Levels"){ foreach($ExistFlat->childNodes as $Levels){ if($Levels->nodeName == "Level"){ $LevelNum = $Levels->getAttribute('Number'); foreach($Levels->childNodes as $Level){ if($Level->nodeName == "Position"){ foreach($Level->childNodes as $Position){ if($Position->nodeName == "Plans"){ foreach($Position->childNodes as $Plans){ if($Plans->nodeName == "Plan"){ $FileGeo = $Plans->getAttribute('File'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(".".$files[$i], $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Чертеж ".$LevelNum." этажаНа месте!"; }else{ echo "Чертеж ".$LevelNum." этажаОтсутствует!"; } } } } } } } } } } /*if($NewFlat->nodeName == "Position"){ echo "1111"; foreach($NewFlat->childNodes as $Position){ if($Position->nodeName == "Plans"){ foreach($Position->childNodes as $Plans){ if($Plans->nodeName == "Plan"){ $FileGeo = $Plans->getAttribute('File'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if($files[$i] == $FileGeo){ $SchemeFlag = 1; } } if($SchemeFlag){ echo "Чертеж помещенияНа месте!"; }else{ echo "Чертеж помещенияОтсутствует!"; } } } } } }*/ } $CadNumFlat = $xml->getElementsByTagName("CadastralNumber")->item(0); echo "Кадастровый номер".$CadNumFlat->nodeValue."Проверить на росреестре"; $CadNumPar = $xml->getElementsByTagName("CadastralNumberOKS")->item(0); echo "Кадастровый номер здания".$CadNumPar->nodeValue."Проверить на росреестре"; } $PrevNums = $xml->getElementsByTagName("Cad_Number_Prev")->item(0); if(is_object($PrevNums)){ $first = 0; foreach($PrevNums->childNodes as $PrevNum){ if($PrevNum->nodeName == "CadastralNumber"){ if($first == 0){ echo "Объект, из которого образовано помещение".$PrevNum->nodeValue."Проверить на росреестре"; $first = 1; }else{ echo "".$PrevNum->nodeValue."Проверить на росреестре"; } } } } $Area = $xml->getElementsByTagName("Area")->item(0); echo "Площадь".$Area->nodeValue.""; echo ""; //Инвентарные номера $OldNums = $xml->getElementsByTagName("Old_Numbers")->item(0); if(is_object($OldNums)){ echo ""; $i = 1; $NumType["01"] = "Инвентарный"; $NumType["02"] = "Условный"; $NumType["03"] = "Кадастровый"; $NumType["99"] = "Иной"; foreach($OldNums->childNodes as $OldNum){ if($OldNum->nodeName == "Old_Number"){ echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } } echo "
Инвентарные номера
№ п/пТипНомерДата присвоенияОрганизация
".$i."".$NumType[$OldNum->getAttribute('Type')]."".$OldNum->getAttribute('Number')."".$OldNum->getAttribute('Date')."".iconv('utf-8', 'windows-1251', $OldNum->getAttribute('Organ'))."
"; } //Правообладатель echo ""; $Client_Type = $xml->getElementsByTagName("Client")->item(0); foreach($Client_Type->childNodes as $Client){ if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance") break; } if($Client->nodeName == "Person"){ echo ""; echo ""; } if($Client->nodeName == "Organization"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } if($Client->nodeName == "Governance"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } echo "
Правообладатель
Физическое лицо
ФИО"; foreach($Client->childNodes as $FIO){ if($FIO->nodeName == "FIO"){ foreach($FIO->childNodes as $Person){ if($Person->nodeName == "Surname"){ echo iconv('utf-8', 'windows-1251', $Person->nodeValue); } if($Person->nodeName == "First"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } if($Person->nodeName == "Patronymic"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } } } } echo "
Юридическое лицо
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
Орган гос. власти
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
"; //Адрес echo ""; if(is_object($Loc = $xml->getElementsByTagName("Code_OKATO")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Code_KLADR")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Postal_Code")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("District")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("City")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Urban_District")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Soviet_Village")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Locality")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Street")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level1")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level2")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Level3")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Apartment")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Other")->item(0))) echo ""; if(is_object($Loc = $xml->getElementsByTagName("Note")->item(0))) echo ""; echo "
Адрес
ОКАТО".$Loc->nodeValue."
КЛАДР".$Loc->nodeValue."
Индекс".$Loc->nodeValue."
Район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Город".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Городской район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Сельсовет".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Населенный пункт".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Улица".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Дом".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Корпус".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Строение".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Квартира".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Иное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
Неформализованное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
"; echo ""; $Conclusion = $xml->getElementsByTagName("Conclusion")->item(0); $concl = $Conclusion->nodeValue; echo ""; echo "
Заключение кадастрового инженера
".iconv('utf-8', 'windows-1251', $concl)."
"; } } if($_POST['Type'] == "MP"){ $flag = 0; if(isset($_POST['upload'])){ //Список разрешенных файлов $whitelist = array(".zip"); $data = array(); $error = true; //Проверяем разрешение файла foreach ($whitelist as $item) { if(preg_match("/$item\$/i",$_FILES['userfile']['name'])) $error = false; } //если нет ошибок, грузим файл if(!$error){ $folder = 'upload';//директория в которую будет загружен файл $uploadedFile = "upload/".$_FILES['userfile']['name']; if(is_uploaded_file($_FILES['userfile']['tmp_name'])){ if(move_uploaded_file($_FILES['userfile']['tmp_name'],$uploadedFile)){ $data = $_FILES['userfile']; $flag = 1; echo "Файл успешно загружен! ".$data['name']; } else { echo "Во время загрузки файла произошла ошибка"; } } else { echo "Файл не загружен ".$_FILES['userfile']['tmp_name']; } } else{ echo 'Вы загружаете запрещенный тип файла'; } } echo ""; if($flag == 1){ $flag1 = 0; $zip = new ZipArchive; $filenames = array(); $files = array(); if ($zip->open('upload/'.$data['name']) === true){ for($i = 0; $i < $zip->numFiles; $i++){ $files[$i] = "/".$zip->getNameIndex($i); $folder = 0; if(strpos($zip->getNameIndex($i), ".xml") !== false){ echo ""; $folder = 1; } if(strpos($zip->getNameIndex($i), ".dwg") !== false){ echo ""; $folder = 1; } if(strpos($zip->getNameIndex($i), ".xls") !== false || strpos($zip->getNameIndex($i), ".xlsx") !== false){ echo ""; $folder = 1; } if(strpos($zip->getNameIndex($i), ".tpo") !== false){ echo ""; $folder = 1; } if(strpos($zip->getNameIndex($i), ".jpg") !== false){ echo ""; $folder = 1; } if($folder == 0){ echo ""; } echo ""; if(strpos($zip->getNameIndex($i), ".xml") !== false && strpos($zip->getNameIndex($i), ".sig") === false){ $filenames[$i] = $zip->getNameIndex($i); $fileindex = $i; } } $NumFiles = $i; echo "
Структура архива:
".iconv("cp866", "windows-1251", $zip->getNameIndex($i))."
"; echo "
"; if(!is_dir("unzip/".$data['name'])) mkdir("unzip/".$data['name'], 0777); $zip->extractTo("unzip/".$data['name']); $zip->close(); echo "Читаю файл ".$filenames[$fileindex]."

"; $DOM = new DOMDocument(); $DOM->load('unzip/'.$data['name'].'/'.$filenames[$fileindex]); if (!$DOM->schemaValidate('C:\Разработка\doc_V04_STD_MP\V04_STD_MP\STD_MP.xsd')) { print 'Файл не прошёл валидацию!'; libxml_display_errors(); }else{ echo "Файл валидный!"; } }else{ echo 'А архивчик-то, битый!'; $flag1 = 1; } } echo "
"; $xml = new DOMDocument(); $xml->load('unzip/'.$data['name'].'/'.$filenames[$fileindex]); $xml->encoding = 'utf-8'; $ParcelMethod["1"] = "Выдел"; $ParcelMethod["2"] = "Раздел"; $ParcelMethod["3"] = "Раздел с измененным земельным участком"; $ParcelMethod["4"] = "Перераспределение"; $ParcelMethod["5"] = "Образование из земель"; $ParcelMethod["6"] = "Объединение"; echo ""; $Scheme = $xml->getElementsByTagName("Scheme_Geodesic_Plotting")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } $Scheme = $xml->getElementsByTagName("Scheme_Disposition_Parcels")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } $Scheme = $xml->getElementsByTagName("Diagram_Parcels_SubParcels")->item(0); foreach($Scheme->childNodes as $Geodesic){ if($Geodesic->nodeName == "AppliedFile"){ $FileGeo = $Geodesic->getAttribute('Name'); $SchemeFlag = 0; for($i = 0; $i < $NumFiles; $i++){ if(strpos(str_replace("/", "\\", $files[$i]), $FileGeo) !== false){ $SchemeFlag = 1; } } if($SchemeFlag){ echo ""; }else{ echo ""; } } } echo "
Чертежи
Схема геодезических построенийНа месте!
Схема геодезических построенийОтсутствует!
Схема расположения земельных участковНа месте!
Схема расположения земельных участковОтсутствует!
Чертеж земельных участковНа месте!
Чертеж земельных участковОтсутствует!
"; $Contractor = $xml->getElementsByTagName("Contractor")->item(0); foreach($Contractor->childNodes as $Cad_Eng){ if($Cad_Eng->nodeName == "FIO"){ $Eng_FIO = ""; foreach($Cad_Eng->childNodes as $FIO){ if($FIO->nodeName == "Surname"){ $Eng_FIO .= $FIO->nodeValue." "; } if($FIO->nodeName == "First"){ $Eng_FIO .= $FIO->nodeValue." "; } if($FIO->nodeName == "Patronymic"){ $Eng_FIO .= $FIO->nodeValue; } } } } echo "
Кадастровый инженер
".iconv('utf-8', 'windows-1251', $Eng_FIO)."
"; if(is_object($Purpose = $xml->getElementsByTagName("Purpose")->item(0))){ $Purpose = $xml->getElementsByTagName("Purpose")->item(0); echo "
Цель кадастровых работ
".iconv('utf-8', 'windows-1251', $Purpose->nodeValue)."
"; } $Reason = $xml->getElementsByTagName("Reason")->item(0); echo "
Вид кадастровых работ
".iconv('utf-8', 'windows-1251', $Reason->nodeValue)."
"; echo ""; $Client_Type = $xml->getElementsByTagName("Client")->item(0); foreach($Client_Type->childNodes as $Client){ if($Client->nodeName == "Person" || $Client->nodeName == "Organization" || $Client->nodeName == "Governance") break; } if($Client->nodeName == "Person"){ echo ""; echo ""; } if($Client->nodeName == "Organization"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } if($Client->nodeName == "Governance"){ $Name = $Client->childNodes->item(0); echo ""; echo ""; $Agent = $Client->childNodes->item(1); echo ""; echo ""; } echo "
Заказчик работ
Физическое лицо
ФИО"; foreach($Client->childNodes as $FIO){ if($FIO->nodeName == "FIO"){ foreach($FIO->childNodes as $Person){ if($Person->nodeName == "Surname"){ echo iconv('utf-8', 'windows-1251', $Person->nodeValue); } if($Person->nodeName == "First"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } if($Person->nodeName == "Patronymic"){ echo iconv('utf-8', 'windows-1251', " ".$Person->nodeValue); } } } } echo "
Юридическое лицо
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
Орган гос. власти
Наименование".iconv('utf-8', 'windows-1251', $Name->nodeValue)."
ФИО представителя".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(0)->nodeValue." ".$Agent->childNodes->item(1)->nodeValue." ".$Agent->childNodes->item(2)->nodeValue)."
Должность".iconv('utf-8', 'windows-1251', $Agent->childNodes->item(3)->nodeValue)."
"; //Пункты echo ""; $Geo_Bases = $xml->getElementsByTagName("Geodesic_Bases")->item(0); if(is_object($Geo_Bases)){ echo ""; foreach($Geo_Bases->childNodes as $Geo_Base){ if($Geo_Base->nodeName == "Geodesic_Base"){ echo ""; foreach($Geo_Base->childNodes as $Punkt){ if($Punkt->nodeName == "PName"){ echo ""; } if($Punkt->nodeName == "PKind"){ echo ""; } if($Punkt->nodeName == "PKlass"){ echo ""; } if($Punkt->nodeName == "OrdX"){ echo ""; } if($Punkt->nodeName == "OrdY"){ echo ""; } } echo ""; } } }else{ echo ""; } echo "
Пункты ОМС
НомерТип пунктаКласс сетиКоорд. XКоорд. Y
".iconv('utf-8', 'windows-1251', $Punkt->nodeValue)."".iconv('utf-8', 'windows-1251', $Punkt->nodeValue)."".iconv('utf-8', 'windows-1251', $Punkt->nodeValue)."".$Punkt->nodeValue."".$Punkt->nodeValue."
Пунктов нет, когда завезут - не знаем!
"; //Документы echo ""; echo ""; $Documents = $xml->getElementsByTagName("Documents")->item(0); foreach($Documents->childNodes as $Document){ if($Document->nodeName == "Document"){ echo ""; $Name = ""; $Series = ""; $Number = ""; $Date = ""; foreach($Document->childNodes as $Doc){ if($Doc->nodeName == "Name"){ $Name = iconv('utf-8', 'windows-1251', $Doc->nodeValue); } if($Doc->nodeName == "Series"){ $Series = iconv('utf-8', 'windows-1251', $Doc->nodeValue); } if($Doc->nodeName == "Number"){ $Number = iconv('utf-8', 'windows-1251', $Doc->nodeValue); } if($Doc->nodeName == "Date"){ $Date = iconv('utf-8', 'windows-1251', $Doc->nodeValue); } } echo ""; echo ""; } } echo "
Документы
НаименованиеСерияНомерДата
".$Name."".$Series."".$Number."".$Date."
"; $Specify = 0; if(is_object($Obj_Type = $xml->getElementsByTagName("FormParcels")->item(0))){ $out = "0\nSECTION\n 2\nENTITIES\n 0\n"; $i = 0; $Obj_Type = $xml->getElementsByTagName("FormParcels")->item(0); $Method = $Obj_Type->getAttribute('Method'); foreach($Obj_Type->childNodes as $Parcels){ if($Parcels->nodeName == "NewParcel"){ $i++; echo ""; echo ""; echo ""; foreach($Parcels->childNodes as $Parcel){ if($Parcel->nodeName == "CadastralBlock"){ $CadBlock = $Parcel->nodeValue; $Block = explode(":", $CadBlock); $flag = 0; if(!$Block[2] || $Block[3]){ $flag = 1; } if(strlen($Block[0]) != 2 || strlen($Block[1]) != 2){ $flag = 1; } if($flag){ echo ""; }else{ echo ""; } } if($Parcel->nodeName == "Providing_Pass_CadastralNumbers"){ $flag = 1; foreach($Parcel->childNodes as $Providing){ if($Providing->nodeName == "CadastralNumber"){ if($flag){ echo ""; $flag = 0; }else{ echo ""; } } if($Providing->nodeName == "Definition"){ if($flag){ echo ""; $flag = 0; }else{ echo ""; } } if($Providing->nodeName == "Other"){ if($flag){ echo ""; $flag = 0; }else{ echo ""; } } } } if($Parcel->nodeName == "Prev_CadastralNumbers"){ $j = 0; foreach($Parcel->childNodes as $PrevNums){ if($PrevNums->nodeName == "CadastralNumber"){ $CadBlock = $PrevNums->nodeValue; $Block = explode(":", $CadBlock); $flag = 0; if(!$Block[3] || $Block[4]){ $flag = 1; } if(strlen($Block[0]) != 2 || strlen($Block[1]) != 2){ $flag = 1; } if($j == 1){ if($flag){ echo ""; }else{ echo ""; } } if($j == 0){ $j = 1; if($flag){ echo ""; }else{ echo ""; } } } } } if($Parcel->nodeName == "Area"){ foreach($Parcel->childNodes as $Area){ if($Area->nodeName == "Area"){ echo "
Вновь образованный участок ".$i."
Способ образования".$ParcelMethod[$Method]."
Обозначение".iconv('utf-8', 'windows-1251', $Parcels->getAttribute('Definition'))."
Кадастровый квартал".iconv('utf-8', 'windows-1251', $Parcel->nodeValue)."
Кадастровый квартал".iconv('utf-8', 'windows-1251', $Parcel->nodeValue)."
Доступ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)."
".iconv('utf-8', 'windows-1251', $Providing->nodeValue)."
Доступ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)."
".iconv('utf-8', 'windows-1251', $Providing->nodeValue)."
Доступ".iconv('utf-8', 'windows-1251', $Providing->nodeValue)."
".iconv('utf-8', 'windows-1251', $Providing->nodeValue)."
".iconv('utf-8', 'windows-1251', $PrevNums->nodeValue)."Посмотреть на кадастровой карте
".iconv('utf-8', 'windows-1251', $PrevNums->nodeValue)."Посмотреть на кадастровой карте
Участки, из которых образован".iconv('utf-8', 'windows-1251', $PrevNums->nodeValue)."Посмотреть на кадастровой карте
Участки, из которых образован".iconv('utf-8', 'windows-1251', $PrevNums->nodeValue)."Посмотреть на кадастровой карте
"; echo ""; } if($Area->nodeName == "Innccuracy"){ echo ""; echo "
Площадь
Значение площади".iconv('utf-8', 'windows-1251', $Area->nodeValue)."
Погрешность вычисления".iconv('utf-8', 'windows-1251', $Area->nodeValue)."
"; } } } if($Parcel->nodeName == "Category"){ echo ""; $Category["003001000000"] = "Земли сельскохозяйственного назначения"; $Category["003002000000"] = "Земли населенных пунктов"; $Category["003003000000"] = "Земли промышленности, энергетики, транспорта, связи, радиовещания, телевидения, информатики, земли для обеспечения космической деятельности, земли обороны, безопасности и земли иного специального назначения"; $Category["003004000000"] = "Земли особо охраняемых территорий и объектов"; $Category["003005000000"] = "Земли лесного фонда"; $Category["003006000000"] = "Земли водного фонда"; $Category["003007000000"] = "Земли запаса"; $Category["003008000000"] = "Категория не установлена"; echo "
Категория земель
".$Category[iconv('utf-8', 'windows-1251', $Parcel->getAttribute('Category'))]."
"; } if($Parcel->nodeName == "Utilization"){ echo ""; $Util = $Parcel->getAttribute('Utilization'); $f = fopen("dUtilizations.csv", "r"); $flag = 0; while(!feof($f)){ $csv = fgetcsv($f, 1000, ';'); if($csv[0] == $Util){ $flag = 1; $Utilization = $csv[1]; break; } } if($flag == 0){ $Utilization = "Не найдено"; } fclose($f); echo ""; echo "
Использование участка
По справочнику".iconv('utf-8', 'windows-1251', $Utilization)."
По документу".iconv('utf-8', 'windows-1251', $Parcel->getAttribute('ByDoc'))."
"; } if($Parcel->nodeName == "Entity_Spatial"){ $Contours = $Parcel; $Simple = 1; } if($Parcel->nodeName == "Contours"){ $Contours = $Parcel; $Simple = 0; } if($Parcel->nodeName == "Location"){ $Address = $Parcel; } } echo ""; foreach($Address->childNodes as $Loc){ if($Loc->nodeName == "Code_OKATO") echo ""; if($Loc->nodeName == "Code_KLADR") echo ""; if($Loc->nodeName == "Postal_Code") echo ""; if($Loc->nodeName == "District") echo ""; if($Loc->nodeName == "City") echo ""; if($Loc->nodeName == "Urban_District") echo ""; if($Loc->nodeName == "Soviet_Village") echo ""; if($Loc->nodeName == "Locality") echo ""; if($Loc->nodeName == "Street") echo ""; if($Loc->nodeName == "Level1") echo ""; if($Loc->nodeName == "Level2") echo ""; if($Loc->nodeName == "Level3") echo ""; if($Loc->nodeName == "Apartment") echo ""; if($Loc->nodeName == "Other") echo ""; if($Loc->nodeName == "Note") echo ""; } echo "
Адрес
ОКАТО".$Loc->nodeValue."
КЛАДР".$Loc->nodeValue."
Индекс".$Loc->nodeValue."
Район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Город".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Городской район".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Сельсовет".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Населенный пункт".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Улица".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Name'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Дом".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Корпус".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Строение".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Квартира".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Value'))."".iconv('utf-8', 'windows-1251', $Loc->getAttribute('Type'))."
Иное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
Неформализованное описание".iconv('utf-8', 'windows-1251', $Loc->nodeValue)."
"; if($Simple == 0){ echo ""; echo "
Контура многоконтурного участка
"; $ContourNum = 1; $FirstCont = 0; //$out = "0\nSECTION\n 2\nENTITIES\n 0\n"; foreach($Contours->childNodes as $Contour){ if($Contour->nodeName == "NewContour"){ echo ""; foreach($Contour->childNodes as $Cont){ if($Cont->nodeName == "Area"){ foreach($Cont->childNodes as $Area){ if($Area->nodeName == "Area"){ echo ""; } if($Area->nodeName == "Innccuracy"){ echo ""; echo "
Контур ".$ContourNum."
Значение площади".iconv('utf-8', 'windows-1251', $Area->nodeValue)."
Погрешность вычисления".iconv('utf-8', 'windows-1251', $Area->nodeValue)."
"; } } } if($Cont->nodeName == "Entity_Spatial"){ echo ""; echo ""; $ContNum = 0; foreach($Cont->childNodes as $Spatial_Element){ $first = 0; if($Spatial_Element->nodeName == "Spatial_Element"){ $out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n5\n 0\n"; if($ContNum){ echo ""; } foreach($Spatial_Element->childNodes as $Spelement_Unit){ if($Spelement_Unit->nodeName == "Spelement_Unit"){ foreach($Spelement_Unit->childNodes as $Ordinate){ if($Ordinate->nodeName == "NewOrdinate" || $Ordinate->nodeName == "OldOrdinate"){ //if($first == 0){ $firstpointX = $Ordinate->getAttribute('X'); $firstpointY = $Ordinate->getAttribute('Y'); $firstX = $firstpointX; $firstY = $firstpointY; $first = 1; if($FirstCont == 0){ $circle = "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n"; $FirstCont = 1; } $out .= "VERTEX\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n 62\n5\n 0\n"; $delta = $Ordinate->getAttribute('Delta_Geopoint'); $num = $Ordinate->getAttribute('Num_Geopoint'); $pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref')); echo ""; /*}else{ $lastX = $Ordinate->getAttribute('X'); $lastY = $Ordinate->getAttribute('Y'); $delta = $Ordinate->getAttribute('Delta_Geopoint'); $num = $Ordinate->getAttribute('Num_Geopoint'); $pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref')); $out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n"; $firstpointX = $lastX; $firstpointY = $lastY; echo ""; }*/ } } } } $out .= "SEQEND\n 8\n0\n 0\n"; //$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 0\n"; $ContNum++; } } echo "
Координаты контура
№ точкиXYПогрешность
Вырезаемая часть ".$ContNum."
".$pref.$num."".$firstpointX."".$firstpointY."".$delta."
".$pref.$num."".$lastX."".$lastY."".$delta."
"; } } $ContourNum++; } } /* $out .= $circle."ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name'].$i.".dxf", "w"); fwrite($fout, $out); fclose($fout); */ echo ""; echo "
Чертеж
"; }else{ echo ""; if($Simple == 0){ echo ""; }else{ echo ""; //$Contours = $xml->getElementsByTagName("Entity_Spatial")->item(0); $ContNum = 0; foreach($Contours->childNodes as $Spatial_Element){ $first = 0; $FirstCont = 0; if($Spatial_Element->nodeName == "Spatial_Element"){ $out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n5\n 0\n"; if($ContNum){ echo ""; } foreach($Spatial_Element->childNodes as $Spelement_Unit){ if($Spelement_Unit->nodeName == "Spelement_Unit"){ foreach($Spelement_Unit->childNodes as $Ordinate){ if($Ordinate->nodeName == "NewOrdinate" || $Ordinate->nodeName == "OldOrdinate"){ //if($first == 0){ $firstpointX = $Ordinate->getAttribute('X'); $firstpointY = $Ordinate->getAttribute('Y'); $firstX = $firstpointX; $firstY = $firstpointY; $first = 1; if($FirstCont == 0){ $circle = "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n"; $FirstCont = 1; } $out .= "VERTEX\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n 62\n5\n 0\n"; $delta = $Ordinate->getAttribute('Delta_Geopoint'); $num = $Ordinate->getAttribute('Num_Geopoint'); $pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref')); echo ""; /*}else{ $lastX = $Ordinate->getAttribute('X'); $lastY = $Ordinate->getAttribute('Y'); $delta = $Ordinate->getAttribute('Delta_Geopoint'); $num = $Ordinate->getAttribute('Num_Geopoint'); $pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref')); $out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n"; $firstpointX = $lastX; $firstpointY = $lastY; echo ""; }*/ } } } } $out .= "SEQEND\n 8\n0\n 0\n"; //$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 0\n"; $ContNum++; } } /* $out .= $circle."ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name'].$i.".dxf", "w"); fwrite($fout, $out); fclose($fout); */ echo "
Контур участка
Участкок имеет несколько кунтуров, но не описан как многоконтурный.
№ точкиXYПогрешность
Вырезаемая часть ".$ContNum."
".$pref.$num."".$firstpointX."".$firstpointY."".$delta."
".$pref.$num."".$lastX."".$lastY."".$delta."
"; echo ""; echo ""; } echo "
Чертеж
"; } echo "
"; } if($Parcels->nodeName == "SpecifyRelatedParcel"){ $Specify++; $CadNum = $Parcels->getAttribute('CadastralNumber'); echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; $oldflag = 0; $newflag = 0; $oldvertex = ""; $newvertex = ""; foreach($Parcels->childNodes as $Border){ if($Border->nodeName == "ChangeBorder"){ $OldNum = ""; $OldX = ""; $OldY = ""; $NewNum = ""; $NewX = ""; $NewY = ""; $flag = 0; foreach($Border->childNodes as $Point){ if($Point->nodeName == "OldOrdinate"){ $flag = 1; $oldflag = 1; $OldNum = $Point->getAttribute('Point_Pref').$Point->getAttribute('Num_Geopoint'); $OldX = $Point->getAttribute('X'); $OldY = $Point->getAttribute('Y'); $oldvertex .= "VERTEX\n 8\n0\n 10\n".$OldY."\n 20\n".$OldX."\n 62\n1\n 0\n"; } if($Point->nodeName == "NewOrdinate"){ $flag = 1; $newflag = 1; $NewNum = $Point->getAttribute('Point_Pref').$Point->getAttribute('Num_Geopoint'); $NewX = $Point->getAttribute('X'); $NewY = $Point->getAttribute('Y'); $newvertex .= "VERTEX\n 8\n0\n 10\n".$NewY."\n 20\n".$NewX."\n 62\n3\n 0\n"; } } if($flag){ echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } } } echo "
Уточнение смежного участка ".$CadNum."
Старый № точкиНовый № точкиСтарая XСтарая YНовая XНовая Y
".iconv('utf-8', 'windows-1251', $OldNum)."".iconv('utf-8', 'windows-1251', $NewNum)."".$OldX."".$OldY."".$NewX."".$NewY."
"; if($oldflag){ $out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n1\n 0\n"; $out .= $oldvertex; $out .= "SEQEND\n 8\n0\n 0\n"; } if($newflag){ $out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n3\n 0\n"; $out .= $newvertex; $out .= "SEQEND\n 8\n0\n 0\n"; } } } $out .= $circle."ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name'].$i.".dxf", "w"); fwrite($fout, $out); fclose($fout); echo ""; $Conclusion = $xml->getElementsByTagName("Conclusion")->item(0); $concl = $Conclusion->nodeValue; echo ""; echo "
Заключение кадастрового инженера
".iconv('utf-8', 'windows-1251', $concl)."
"; } if(is_object($Obj_Type = $xml->getElementsByTagName("SpecifyParcel")->item(0))){ $out = "0\nSECTION\n 2\nENTITIES\n 0\n"; $i = 0; $Obj_Type = $xml->getElementsByTagName("SpecifyParcel")->item(0); foreach($Obj_Type->childNodes as $Parcels){ if($Parcels->nodeName == "ExistParcel"){ $i++; echo ""; $CadNumber = $Parcels->getAttribute('CadastralNumber'); $Block = explode(":", $CadNumber); $flag = 0; if(!$Block[3] || $Block[4]){ $flag = 1; } if(strlen($Block[0]) != 2 || strlen($Block[1]) != 2){ $flag = 1; } if($flag){ echo ""; }else{ echo ""; } foreach($Parcels->childNodes as $Parcel){ if($Parcel->nodeName == "CadastralBlock"){ $CadBlock = $Parcel->nodeValue; $Block = explode(":", $CadBlock); $flag = 0; if(!$Block[2] || $Block[3]){ $flag = 1; } if(strlen($Block[0]) != 2 || strlen($Block[1]) != 2){ $flag = 1; } if($flag){ echo ""; }else{ echo ""; } } if($Parcel->nodeName == "Area"){ foreach($Parcel->childNodes as $Area){ if($Area->nodeName == "Area"){ echo "
Уточняемый участок ".$i."
Кадастровый номер".iconv('utf-8', 'windows-1251', $CadNumber)."Посмотреть на кадастровой карте
Кадастровый номер".iconv('utf-8', 'windows-1251', $CadNumber)."Посмотреть на кадастровой карте
Кадастровый квартал".iconv('utf-8', 'windows-1251', $Parcel->nodeValue)."
Кадастровый квартал".iconv('utf-8', 'windows-1251', $Parcel->nodeValue)."
"; echo ""; } if($Area->nodeName == "Innccuracy"){ echo ""; echo "
Площадь
Значение площади".iconv('utf-8', 'windows-1251', $Area->nodeValue)."
Погрешность вычисления".iconv('utf-8', 'windows-1251', $Area->nodeValue)."
"; } } } if($Parcel->nodeName == "Entity_Spatial"){ $Contours = $Parcel; $Simple = 1; } if($Parcel->nodeName == "Contours"){ $Contours = $Parcel; $Simple = 0; } } if($Simple == 0){ echo ""; echo "
Контура многоконтурного участка
"; $ContourNum = 1; $FirstCont = 0; //$out = "0\nSECTION\n 2\nENTITIES\n 0\n"; foreach($Contours->childNodes as $Contour){ if($Contour->nodeName == "NewContour"){ echo ""; foreach($Contour->childNodes as $Cont){ if($Cont->nodeName == "Area"){ foreach($Cont->childNodes as $Area){ if($Area->nodeName == "Area"){ echo ""; } if($Area->nodeName == "Innccuracy"){ echo ""; echo "
Контур ".$ContourNum."
Значение площади".iconv('utf-8', 'windows-1251', $Area->nodeValue)."
Погрешность вычисления".iconv('utf-8', 'windows-1251', $Area->nodeValue)."
"; } } } if($Cont->nodeName == "Entity_Spatial"){ echo ""; echo ""; $ContNum = 0; foreach($Cont->childNodes as $Spatial_Element){ $first = 0; if($Spatial_Element->nodeName == "Spatial_Element"){ $out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n5\n 0\n"; if($ContNum){ echo ""; } foreach($Spatial_Element->childNodes as $Spelement_Unit){ if($Spelement_Unit->nodeName == "Spelement_Unit"){ foreach($Spelement_Unit->childNodes as $Ordinate){ if($Ordinate->nodeName == "NewOrdinate" || $Ordinate->nodeName == "OldOrdinate"){ //if($first == 0){ $firstpointX = $Ordinate->getAttribute('X'); $firstpointY = $Ordinate->getAttribute('Y'); $firstX = $firstpointX; $firstY = $firstpointY; $first = 1; if($FirstCont == 0){ $circle = "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n"; $FirstCont = 1; } $out .= "VERTEX\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n 62\n5\n 0\n"; $delta = $Ordinate->getAttribute('Delta_Geopoint'); $num = $Ordinate->getAttribute('Num_Geopoint'); $pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref')); echo ""; /*}else{ $lastX = $Ordinate->getAttribute('X'); $lastY = $Ordinate->getAttribute('Y'); $delta = $Ordinate->getAttribute('Delta_Geopoint'); $num = $Ordinate->getAttribute('Num_Geopoint'); $pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref')); $out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n"; $firstpointX = $lastX; $firstpointY = $lastY; echo ""; }*/ } } } } $out .= "SEQEND\n 8\n0\n 0\n"; //$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 0\n"; $ContNum++; } } echo "
Координаты контура
№ точкиXYПогрешность
Вырезаемая часть ".$ContNum."
".$pref.$num."".$firstpointX."".$firstpointY."".$delta."
".$pref.$num."".$lastX."".$lastY."".$delta."
"; } } $ContourNum++; } } /* $out .= $circle."ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name'].$i.".dxf", "w"); fwrite($fout, $out); fclose($fout); */ echo ""; echo "
Чертеж
"; }else{ echo ""; echo ""; //$out = "0\nSECTION\n 2\nENTITIES\n 0\n"; //$Contours = $xml->getElementsByTagName("Entity_Spatial")->item(0); $ContNum = 0; foreach($Contours->childNodes as $Spatial_Element){ $first = 0; $FirstCont = 0; if($Spatial_Element->nodeName == "Spatial_Element"){ $out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n5\n 0\n"; if($ContNum){ echo ""; } foreach($Spatial_Element->childNodes as $Spelement_Unit){ if($Spelement_Unit->nodeName == "Spelement_Unit"){ foreach($Spelement_Unit->childNodes as $Ordinate){ if($Ordinate->nodeName == "NewOrdinate" || $Ordinate->nodeName == "OldOrdinate"){ //if($first == 0){ $firstpointX = $Ordinate->getAttribute('X'); $firstpointY = $Ordinate->getAttribute('Y'); $firstX = $firstpointX; $firstY = $firstpointY; $first = 1; if($FirstCont == 0){ $circle = "CIRCLE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 30\n0\n 40\n60000\n 62\n4\n 0\n"; $FirstCont = 1; } $out .= "VERTEX\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n 62\n5\n 0\n"; $delta = $Ordinate->getAttribute('Delta_Geopoint'); $num = $Ordinate->getAttribute('Num_Geopoint'); $pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref')); echo ""; /*}else{ $lastX = $Ordinate->getAttribute('X'); $lastY = $Ordinate->getAttribute('Y'); $delta = $Ordinate->getAttribute('Delta_Geopoint'); $num = $Ordinate->getAttribute('Num_Geopoint'); $pref = iconv('utf-8', 'windows-1251', $Ordinate->getAttribute('Point_Pref')); $out .= "LINE\n 8\n0\n 10\n".$firstpointY."\n 20\n".$firstpointX."\n"." 11\n".$lastY."\n 21\n".$lastX."\n 0\n"; $firstpointX = $lastX; $firstpointY = $lastY; echo ""; }*/ } } } } $out .= "SEQEND\n 8\n0\n 0\n"; //$out .= "LINE\n 8\n0\n 10\n".$lastY."\n 20\n".$lastX."\n"." 11\n".$firstY."\n 21\n".$firstX."\n 0\n"; $ContNum++; } } /* $out .= $circle."ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name'].$i.".dxf", "w"); fwrite($fout, $out); fclose($fout); */ echo "
Контур участка
№ точкиXYПогрешность
Вырезаемая часть ".$ContNum."
".$pref.$num."".$firstpointX."".$firstpointY."".$delta."
".$pref.$num."".$lastX."".$lastY."".$delta."
"; echo ""; echo ""; echo "
Чертеж
"; } echo "
"; } if($Parcels->nodeName == "SpecifyRelatedParcel"){ $Specify++; $CadNum = $Parcels->getAttribute('CadastralNumber'); echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; $oldflag = 0; $newflag = 0; $oldvertex = ""; $newvertex = ""; foreach($Parcels->childNodes as $Border){ if($Border->nodeName == "ChangeBorder"){ $OldNum = ""; $OldX = ""; $OldY = ""; $NewNum = ""; $NewX = ""; $NewY = ""; $flag = 0; foreach($Border->childNodes as $Point){ if($Point->nodeName == "OldOrdinate"){ $flag = 1; $oldflag = 1; $OldNum = $Point->getAttribute('Point_Pref').$Point->getAttribute('Num_Geopoint'); $OldX = $Point->getAttribute('X'); $OldY = $Point->getAttribute('Y'); $oldvertex .= "VERTEX\n 8\n0\n 10\n".$OldY."\n 20\n".$OldX."\n 62\n1\n 0\n"; } if($Point->nodeName == "NewOrdinate"){ $flag = 1; $newflag = 1; $NewNum = $Point->getAttribute('Point_Pref').$Point->getAttribute('Num_Geopoint'); $NewX = $Point->getAttribute('X'); $NewY = $Point->getAttribute('Y'); $newvertex .= "VERTEX\n 8\n0\n 10\n".$NewY."\n 20\n".$NewX."\n 62\n3\n 0\n"; } } if($flag){ echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } } } echo "
Уточнение смежного участка ".$CadNum."
Старый № точкиНовый № точкиСтарая XСтарая YНовая XНовая Y
".iconv('utf-8', 'windows-1251', $OldNum)."".iconv('utf-8', 'windows-1251', $NewNum)."".$OldX."".$OldY."".$NewX."".$NewY."
"; if($oldflag){ $out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n1\n 0\n"; $out .= $oldvertex; $out .= "SEQEND\n 8\n0\n 0\n"; } if($newflag){ $out .= "POLYLINE\n 8\n0\n 6\nByLayer\n 70\n1\n 75\n5\n 66\n1\n 62\n3\n 0\n"; $out .= $newvertex; $out .= "SEQEND\n 8\n0\n 0\n"; } } } $out .= $circle."ENDSEC\n 0\nEOF"; $fout = fopen("unzip/".$data['name'].$i.".dxf", "w"); fwrite($fout, $out); fclose($fout); echo ""; $Conclusion = $xml->getElementsByTagName("Conclusion")->item(0); $concl = $Conclusion->nodeValue; echo ""; echo "
Заключение кадастрового инженера
".iconv('utf-8', 'windows-1251', $concl)."
"; } } ?>