( time()-(3600*24) )) { $out = json_decode(file_get_contents($file_cache), 1); $cache=true; } } if(!$cache){ $url = self::url_json . '&data=' . urlencode($disciplina) . '&database=' . $database; $html = file_get_contents($url); $html = str_replace($m1, $m2, strip_tags($html)); $out = json_decode($html, 1); foreach ($out as $k => $v) { if (isset($v['URL'])) { if (strpos($v['URL'], 'http') === false) { $out[$k]['URL'] = 'http://' . $v['URL']; } } } if (count($out)) { file_put_contents($file_cache, json_encode($out, JSON_UNESCAPED_UNICODE)); } } }else{ $out=array(); } return $out; } /** * Получение ресурсов по направлению * @param $naprav * @return void */ function get_proBD($DISCIPS){ //echo '
'.print_r($DISCIPS,1).''; exit(); /*Array( [Заочная] => Array([uchebplan] => Array() [title] => Array([shifr] => 35.03.04 [naprav] => Агрономия ) [Очная] => Array( [uchebplan] => Array() [title] => Array([shifr] => 35.03.04 [naprav] => Агрономия ) ) * */ $shifr = ''; $naprav = ''; if(isset($DISCIPS['Очно-заочная'])) $shifr = $DISCIPS['Очно-заочная']['title']['shifr']; $naprav = $DISCIPS['Очная']['title']['naprav']; if(isset($DISCIPS['Заочная'])) $shifr = $DISCIPS['Очная']['title']['shifr']; $naprav = $DISCIPS['Очная']['title']['naprav']; if(isset($DISCIPS['Очная'])) $shifr = $DISCIPS['Очная']['title']['shifr']; $naprav = $DISCIPS['Очная']['title']['naprav']; $url = 'http://lib.mkgtu.ru/index.php/napravleniya-podgotovki'; $file_cache = 'upload/libs/np_'.$shifr.'.json'; if(file_exists($file_cache)){ $out = json_decode(file_get_contents($file_cache),1); }else { $html = file_get_contents($url); $url2 = $this->HTML_parseBD($html,$shifr); $out = $this->HTML_parseBD_step2($url2); file_put_contents($file_cache,json_encode($out)); } //echo $shifr.'
'.print_r($DISCIPS,1).print_r($out,1).'';exit(); return $out; } //Находим нужную ссылку function HTML_parseBD($html,$shifr){ $out=array(); //echo '
'.htmlspecialchars($html).''; exit(); //
'.print_r($pages,1).''; exit(); //Array([0] => Array([name] => Агроинженерия (35.03.06) [url] => http://lib.mkgtu.ru/index.php/napravleniya-podgotovki/124-agroinzheneriya-35-03-06 ) foreach($pages as $k => $v){ if(mb_strpos($v['name'],trim($shifr))){//нашли шифр $out = $v['url']; } } return $out; } //Берем литературу function HTML_parseBD_step2($url){ $out=array(); $html = file_get_contents($url); //echo $html; exit(); $pattern = '
'.print_r($arr,1).''; exit(); $what = $arr[0][0]; if(mb_strlen($arr[1][0])>mb_strlen($arr[0][0])) $what = $arr[1][0]; if(isset($arr[0][0])){ $text = $what; //надо определить заголовки в странице $zaga = array('Электронно-библиотечные системы','Электронные библиотеки','Архивы научных журналов','Ресурсы Интернет открытого доступа','Зарубежные ресурсы'); //,'Периодические издания доступные обучающимся и сотрудникам ФГБОУ ВО МГТУ по подписке и на основании контрактов и лицензионных соглашений' $zaga_items=array(); foreach ($zaga as $k => $v){ $pos = strpos($text,$v); if($pos!==false) $zaga_items[$pos] = $v; } //echo '
'.print_r($zaga_items,1).''; exit(); $ki=0; foreach ($zaga_items as $k => $v){ if($ki) { //$starttext = $zaga_items[$ki - 1]; $endtext = $v; //echo $starttext.'-'.$endtext.'
'.print_r($out,1).''; exit(); /* $t1 = $this->getText_Megdu($text,'Электронно-библиотечные системы','>Электронные библиотеки<'); if($t1!='') { preg_match_all('|
'.print_r($out,1).''; exit(); $t1 = $this->getText_Megdu($text,'>Архивы научных журналов<','>Ресурсы Интернет открытого доступа'); if($t1!='') { preg_match_all('|
'.print_r($out,1).''; exit(); $out1=array(); foreach($out as $tip => $val) foreach($val as $k => $text){ $text = html_entity_decode($text); $text = str_replace(" ",' ',$text); $text = str_replace(' ',' ',$text); $text = str_replace(' ',' ',$text); $text = str_replace(' ',' ',$text); if(mb_strlen(trim(strip_tags($text)))>10) { $hrefs = $this->getText_HREF($text); $out1[$tip][$k] = array('html' => $text, 'text' => strip_tags($text), 'urls' => $hrefs); } } //echo '
'.print_r($out1,1).''; exit(); return $out1; } /** * Получаем текст между текстами * @param $text * @param $str1 * @param $str2 * @return mixed|string */ function getText_Megdu($text,$str1,$str2){ $out=''; preg_match_all('|'.$str1.'(.*)'.$str2.'|isU',$text,$arr); if(isset($arr[1][0])){ $out = $arr[1][0]; } return $out; } /** * Получаем список ссылок в тексте * @param $text * @return array */ function getText_HREF($text){ $out = array(); preg_match_all('|