EIOS/rabprog/files_rename.php

132 lines
5.8 KiB
PHP
Raw Normal View History

2023-12-28 15:39:22 +03:00
<?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;
}