$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 '
'.print_r($titul,1).''; $i++; //if($i>5)exit(); } echo '
'.print_r($files,1).''; 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; }