№ Наименование дисциплины (модуля) в соответствии с учебным планом Наименование специальных помещений и помещений для самостоятельной работы Оснащенность специальных помещений и помещений для самостоятельной работы Адрес (местоположение) 1Мастер по обработке цифровой информации (филиал) ОП.01 Основы информационных технологий Кабинет информационных технологий в профессиональной деятельности / Лаборатория информационных технологий в профессиональной деятельности / Лаборатория информационных технологий / Лаборатория технологии разработки баз данных / Лаборатория «Учебная бухгалтерия» (Ф_колледж-В-202) 385140, Республика Адыгея, Тахтамукайский район, пгт. Яблоновский, ул. Связи, дом № 11, Учебный корпус колледжа */ class class_MATERIAL{ var $url = 'https://mkgtu.ru/sveden/objects/index.html'; var $dir_cahce = 'upload/materials/'; private $DB=null; private $TMaterial=''; function __construct(){ GLOBAL $DB,$ST; $this->DB = $DB; $this->TMaterial = $ST['dbpf'].'_fshp_material'; $this->createTable(); } /** * Получение данных по матбазы * @param $data - code,nameOP(может быть пустым),namedisc(может быть пустым) * @return array */ function GetItems($data){ $out = array('err'=>1,'msg'=>'не нашли','items'=>array()); $sql = 'SELECT data_c,code,nameOP,namedisc,nameSpecPom,osnachSpecPom,descrip,address FROM '.$this->TMaterial.' WHERE code="'.$data['code'].'"'; if(isset($data['nameOP'])&&$data['nameOP']!='') $sql .= ' AND nameOP="'.$data['nameOP'].'"'; if(isset($data['namedisc'])&&$data['namedisc']!='') $sql .= ' AND namedisc="'.$data['namedisc'].'"'; $sql .= ' ORDER BY namedisc'; $rez = $this->DB->QUR_SEL($sql); //echo $sql.'
'.print_r($rez,1).'
';exit(); if(!$rez['err']&&$rez['kol']){ $out['err']=0; $out['msg']='Есть записи'; foreach ($rez['rez'] as $key => $val) { $val['nameSpecPom'] = json_decode($val['nameSpecPom'],1); $val['osnachSpecPom'] = json_decode($val['osnachSpecPom'],1); $val['address'] = json_decode($val['address'],1); $out['items'][] = $val; } } return $out; } /** * создание таблицы */ function createTable(){ $this->DB->QUR('CREATE TABLE IF NOT EXISTS `'.$this->TMaterial.'` ( `id` int(11) NOT NULL AUTO_INCREMENT, `data_c` int(11) NOT NULL, `code` varchar(255) NOT NULL, `nameOP` varchar(255) NOT NULL, `url` text NOT NULL, `namedisc` varchar(255) NOT NULL, `nameSpecPom` text NOT NULL, `osnachSpecPom` text NOT NULL, `descrip` text NOT NULL, `address` text NOT NULL, primary key (id) ) ENGINE=MyISAM AUTO_INCREMENT=1 DEFAULT CHARSET=utf8;'); } /** * Получение записи в таблице по данным * @param $data * @return array */ function TableGet($data){ $out = array('err'=>1,'msg'=>'Нет записи'); $sql = 'SELECT * FROM '.$this->TMaterial.' WHERE code="'.$data['code'].'" AND nameOP="'.$data['nameOP'].'" AND url="'.$data['url'].'"'; $rez = $this->DB->QUR_SEL($sql); if(!$rez['err']&&$rez['kol']){ $out['err']=0; $out['msg']='Есть запись'; $out['rez']=$rez['rez'][0]; } return $out; } /** * Вставка записи в таблицу * @param $item * @param $data * @return array */ function TableInsert($item,$data){ $out = array('err'=>1,'msg'=>'Ошибка добавления'); $item['code'] = $this->DB->rescape($item['code']); $item['nameOP'] = $this->DB->rescape($item['nameOP']); $item['url'] = $this->DB->rescape($item['url']); $data['namedisc'] = $this->DB->rescape($data['namedisc']); $data['nameSpecPom'] = $this->DB->rescape(json_encode($data['nameSpecPom'])); $data['osnachSpecPom'] = $this->DB->rescape(json_encode($data['osnachSpecPom'])); $data['descrip'] = $this->DB->rescape($data['descrip']); $data['address'] = $this->DB->rescape(json_encode($data['address'])); $sql = 'INSERT INTO '.$this->TMaterial.' VALUES (0,'.time().',"'.$item['code'].'","'.$item['nameOP'].'","'.$item['url'].'","'.$data['namedisc'].'","'.$data['nameSpecPom'].'","'.$data['osnachSpecPom'].'","'.$data['descrip'].'","'.$data['address'].'")'; $rez = $this->DB->QUR($sql); if(!$rez['err']&&$rez['kol']){ $out['err']=0; $out['msg']='Добавили'; $out['id']=$this->DB->lastinsertID(); } return $out; } /** * Парсим данные с DBНики * @return array */ function Parse(){ $items = $this->Parse_main(); $out['datas'] = $this->Items_each($items); return $out; } /** * Перебираем каждый элемент полученный с главной * @param $items * @return array */ function Items_each($items){ $out = array('err'=>1,'msg'=>'Пустые ссылки'); if(count($items)){ $out = array('err'=>0,'msg'=>'Есть ссылки'); foreach($items as $k => $item) { //[0]=>Array([code]=>09.01.03 [nameOP]=>Мастер по обработке цифровой информации (филиал) [url]=>objects/cabinets/09.01.03-mafilial_op0245.html $check = $this->TableGet($item); if($check['err']==1) {//Записи нет, надо добавлять! $datas = $this->Parse_url($item); foreach($datas as $k1 => $data) { $this->TableInsert($item, $data); $out[] = array_merge($item, $data); } } } } return $out; } /** * Парсим страницу одной записи * @param $data * @return array|mixed */ function Parse_url($data){ $out = array(); $html = file_get_contents($data['url']);//https://mkgtu.ru//sveden/objects/cabinets/09.01.03-master-po-obrabotke-cifrovoy-informacii-filial_op0245.html $pattern = '.*.*(.*).*.*.*(.*).*.*(.*).*.*.*.*(.*).*'; preg_match_all('|' . $pattern . '|isU', $html, $arr, PREG_SET_ORDER); $items = array(); if (count($arr)) { foreach ($arr as $k => $val) { unset($val[0]); $nameOP = trim($val[1]); $namedisc = trim($val[2]); //Наименование дисциплины (модуля) в соответствии с учебным планом $nameSpecPom = explode('/',trim($val[3])); //Наименование специальных помещений и помещений для самостоятельной работы $nameSpecPom = array_map(function($item) { return trim($item); }, $nameSpecPom); $osnachSpecPom = explode('/',trim(str_replace('Оснащенность: ','',$val[4]))); //Оснащенность специальных помещений $osnachSpecPom = array_map(function($item) { return trim($item); }, $osnachSpecPom); $descrip = trim(strip_tags($val[5])); //Описание $address = explode('/',trim($val[6])); //Адрес (местоположение) $address = array_map(function($item) { return trim($item); }, $address); $items[] = array('nameOP' => $nameOP, 'namedisc' => $namedisc, 'nameSpecPom' => $nameSpecPom,'osnachSpecPom' => $osnachSpecPom,'descrip' => $descrip,'address' => $address); } } $out = $items; /* [0] => Array( [nameOP] => Мастер по обработке цифровой информации (филиал) [namedisc] => ОП.01 Основы информационных технологий [nameSpecPom] => Array( [0] => Кабинет информационных технологий в профессиональной деятельности [1] => Лаборатория информационных технологий в профессиональной деятельности [2] => Лаборатория информационных технологий [3] => Лаборатория технологии разработки баз данных [4] => Лаборатория «Учебная бухгалтерия» (Ф_колледж-В-202) ) [osnachSpecPom] => Array( [0] => Основы информационных технологий [1] => Кабинет информационных технологий в профессиональной деятельности [2] => Лаборатория информационных технологий в профессиональной деятельности [3] => Лаборатория информационных технологий [4] => Лаборатория технологии разработки баз данных [5] => Лаборатория «Учебная бухгалтерия» (Ф_колледж-В-202) ) [descrip] => Посадочные места по количеству обучающихся, рабочее место преподавателя, шкаф для хранения раздаточного дидактического материала и др.; персональные компьютеры обучающихся – 10 шт.; персональный компьютер преподавателя; принтер; сканер; переносное мультимедийное оборудование. ПО на компьютерах: ОС Linux, Open Office, Google Chrome, Adobe Reader, Kaspersky Anti-virus, VLC Media Player, 1CПредприятие 8.3, 7-zip, K-Lite Codec Pack, Codec Guide, Open Broadcaster Software 23.2.1, Inkscape, GIMP, Blender, Autodesk AutoCAD, Autodesk 3DMAX, Autodesk MAYA, MySQL, Scratch, Macromedia Flash MX, Visual Basic, Unity3D; виртуальные лаборатории «Детали машин» - 5 шт., «Техническое обслуживание автомобилей» - 5 шт.; «Электротехника» - 5 шт.; программный лабораторный комплекс «Безопасность жизнедеятельности и охрана труда». Рабочее место бухгалтера, учебно-информационные стенды по основам бухгалтерского учета; должностные инструкции работников бухгалтерии; задания для учебной практики, дополнительных занятий, деловых игр по бухгалтерскому учету. [address] => 385140, Республика Адыгея, Тахтамукайский район, пгт. Яблоновский, ул. Связи, дом № 11, Учебный корпус колледжа ) * */ return $out; } /** * Парсим главную страницу * @return array */ function Parse_main(){ $html = file_get_contents($this->url);//https://mkgtu.ru/sveden/objects/index.html - тут все ссылки на файлы $pattern = '.*.*.*(.*).*(.*).*.*Посмотреть.*.*'; preg_match_all('|'.$pattern.'|isU',$html,$arr,PREG_SET_ORDER); $items = array(); if(count($arr)){ foreach($arr as $k => $val){ unset($val[0]); $code = trim($val[1]); //Код направления подготовки $nameOP = trim($val[2]); //Наименование образовательной программы $url = 'https://mkgtu.ru/'.trim($val[3]); //Информация о наличии оборудованных учебных кабинетов, объектов, для проведения практических занятий $items[] = array('code'=>$code,'nameOP'=>$nameOP,'url'=>$url,); } } //[0]=>Array([code]=>09.01.03 [nameOP]=>Мастер по обработке цифровой информации (филиал) [url]=>https://mkgtu.ru//sveden/objects/cabinets/09.01.03-master-po-obrabotke-cifrovoy-informacii-filial_op0245.html return $items; } }