132 lines
5.8 KiB
PHP
132 lines
5.8 KiB
PHP
|
<?php
|
||
|
|
||
|
include 'config.php';
|
||
|
|
||
|
$dir = '../XLSX/OLD/';
|
||
|
$files = scandir($dir); $i=0;
|
||
|
foreach ($files as $key => $file)if($file!='.'&&$file!='..'){
|
||
|
$titul = parse_xls($dir.$file);
|
||
|
$pi = pathinfo($file);
|
||
|
$newfile = $titul['god_nach_podgot'].' '.$titul['naprav'].' '.$titul['fo'].'.'.$pi['extension'];
|
||
|
if(file_exists('../XLSX/NEW/'.$newfile)){
|
||
|
$newfile = $titul['god_nach_podgot'].' '.$titul['naprav'].' '.$titul['fo'].'_'.mt_rand(1000,9999).'.'.$pi['extension'];
|
||
|
}
|
||
|
rename($dir.$file, '../XLSX/NEW/'.$newfile);
|
||
|
echo '<pre>'.print_r($titul,1).'</pre>';
|
||
|
$i++; //if($i>5)exit();
|
||
|
}
|
||
|
echo '<pre>'.print_r($files,1).'</pre>';
|
||
|
|
||
|
|
||
|
function parse_xls($file){
|
||
|
$out = array();
|
||
|
require_once 'inc/PHPExcel.php';
|
||
|
$excel = PHPExcel_IOFactory::load($file);
|
||
|
$out = sheet_title($excel, $file);
|
||
|
return $out;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Разбираем лист ТИТУЛ
|
||
|
* @param $excel
|
||
|
* @param $file
|
||
|
* @return array|mixed
|
||
|
*/
|
||
|
function sheet_title($excel,$file){
|
||
|
$out = array();
|
||
|
$pi = pathinfo($file);
|
||
|
$excel->setActiveSheetIndex(0);
|
||
|
$objWorksheet = $excel->getSheetByName('Титул');
|
||
|
|
||
|
$rowH = $objWorksheet->getHighestRow();
|
||
|
$colH =30; $yearIS=false; $profilIS=false; $obr_stabdartIS=false; $kodsIS=0; $kods=array();
|
||
|
$m1=array('_x000d_',"_x000d_",'_x000D_',"_x000D_","Направление подготовки:","Направление подготовки","Направление:","Направление","Специальность:","Специальность ","специальность ");
|
||
|
$m2=array('',"",'',"","","","","","","","");
|
||
|
$m3=array('Профиль подготовки','Профиль:','профиль','Магистерская программа','Программа магитратуры:','Специализация','Программа магистратуры:');
|
||
|
$m4=array('|#|','|#|','|#|','|#|','|#|','|#|','|#|');
|
||
|
$m5=array('"','«','»');
|
||
|
$m6=array('','','');
|
||
|
for ($row = 1; $row <= $rowH; $row++) {
|
||
|
for ($col = 0; $col < $colH; $col++) {
|
||
|
$cell = $objWorksheet->getCellByColumnAndRow($col, $row);
|
||
|
$value = trim($cell->getValue());
|
||
|
|
||
|
if(strpos($value, 'по программе') !== false) if($out['program']==''){ $out['program'] = trim(str_replace('по программе ','',$value)); }
|
||
|
if($row>=16&&$row<=18&&$out['shifr']==''&&$value!=''&&$col!=0){ $out['shifr']=trim($value); }
|
||
|
if($row>=18&&$row<=19&&$out['naprav']==''&&$value!=''&&$col!=0){
|
||
|
//[naprav] => Направление подготовки:Техносферная безопасность Профиль: Охрана природной среды и ресурсосбережение
|
||
|
$out['naprav']=trim(str_replace($out['shifr'],'',$value));
|
||
|
$out['naprav'] = str_replace($m1,$m2, $out['naprav']);
|
||
|
$tmp = explode('|#|',str_replace($m3,$m4, $out['naprav']));
|
||
|
if(count($tmp)>1){
|
||
|
$out['naprav'] = trim($tmp[0]);
|
||
|
$out['profil'] = str_replace('"','',trim($tmp[1]));
|
||
|
}
|
||
|
$out['naprav'] = str_replace($m5,$m6, $out['naprav']);
|
||
|
$out['profil'] = str_replace($m5,$m6, $out['profil']);
|
||
|
}
|
||
|
if($profilIS){
|
||
|
if($value!='') {
|
||
|
if($out['profil']==''){
|
||
|
$out['profil'] = $value; $profilIS=false;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if(strpos($value, 'Профиль') !== false) { $profilIS=true; }
|
||
|
|
||
|
if(strpos($value, 'Кафедра') !== false) {
|
||
|
$c = $objWorksheet->getCellByColumnAndRow($col+1, $row);
|
||
|
$v = trim($c->getValue());
|
||
|
$out['kafedra']=$v;
|
||
|
}
|
||
|
if(strpos($value, 'Факультет') !== false) {
|
||
|
$c = $objWorksheet->getCellByColumnAndRow($col+1, $row);
|
||
|
$v = trim($c->getValue());
|
||
|
$out['fakultet']=$v;
|
||
|
}
|
||
|
if(strpos($value, 'Квалификация') !== false) {
|
||
|
$out['kvalif'] = trim(str_replace('Квалификация:','',$value));
|
||
|
}
|
||
|
if($yearIS&&$value!=''){ $out['god_nach_podgot'] = $value; $yearIS=false; }
|
||
|
if(strpos($value, 'Год начала подготовки') !== false) { $yearIS=true; }
|
||
|
|
||
|
if(strpos($value, 'Форма обучения') !== false) {
|
||
|
$out['fo'] = trim(str_replace('Форма обучения:','',$value));
|
||
|
}
|
||
|
if(strpos($value, 'Срок получения образования') !== false) {
|
||
|
$out['srok_poluch_obr'] = trim(str_replace('Срок получения образования:','',$value));
|
||
|
}
|
||
|
if($obr_stabdartIS){
|
||
|
if($out['obr_stabdart']==''&&trim($value)!='') {
|
||
|
$out['obr_stabdart'] = trim($value);
|
||
|
$obr_stabdartIS=false;
|
||
|
}
|
||
|
}
|
||
|
if(strpos($value, 'Образовательный стандарт') !== false) {
|
||
|
$obr_stabdartIS = true;
|
||
|
}
|
||
|
if(strpos($value, 'Код') !== false){
|
||
|
$kodsIS=1;
|
||
|
}
|
||
|
if($kodsIS==1){
|
||
|
if($value!='') {
|
||
|
$kods[$row][$col]=$value;
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
if(count($kods[$row])==1) {//после таблицы идет пустая строка
|
||
|
$kodsIS=0;
|
||
|
unset($kods[$row]);
|
||
|
}
|
||
|
}
|
||
|
$i=0; $kodsi = array();
|
||
|
foreach($kods as $k => $v){
|
||
|
if($i!=0) {//Удалим первую строку
|
||
|
if(isset($v[0])) unset($v[0]);
|
||
|
$kodsi[$v[1]] = $v[2];
|
||
|
}
|
||
|
$i++;
|
||
|
}
|
||
|
$out['json'] = json_encode(array('kods'=>$kodsi));
|
||
|
return $out;
|
||
|
}
|