Exemplo n.º 1
0
				echo '<script type="text/javascript">alert("'._f('%1는 잘못된 형식의 파일입니다.', $_FILES['importFile']['name']).'");</script>';
				$_FILES = null;
				exit;
			}

			$opmlCacheDir = ROOT . '/cache/opml';
			$tmpFilename = md5($_SERVER['REMOTE_ADDR'].time()).'.xml';
			if (!is_dir($opmlCacheDir)) func::mkpath($opmlCacheDir);
			if (!is_writable($opmlCacheDir) || !move_uploaded_file($_FILES['importFile']['tmp_name'], $opmlCacheDir.'/'.$tmpFilename)) {
				echo '<script type="text/javascript">alert("'._t('파일 가져오기에 실패했습니다.\n날개가 설치된 폴더와 cache 폴더에 쓰기 권한이 있는지 확인해주세요.').'");</script>';
				exit;
			}

			$xmls = new XMLStruct();
			$xmls->openFile($opmlCacheDir.'/'.$tmpFilename, true);
			$xmlURLs = func::multiarray_values($xmls->selectNodes("/opml/body/outline"), 'xmlUrl');

			if (count($xmlURLs)==0) {
				echo '<script type="text/javascript">alert("'._t('바른 형식의 OPML 파일이 아닙니다.').'");</script>';
				exit;
			}

			echo '<script type="text/javascript">"'._t('피드를 추가하고 있습니다').'";</script>';
			flush();
			$_feeder = new Feed;
			foreach($xmlURLs as $xmlURL) {		
				if (empty($xmlURL)) continue; 
				$_feeder->add($xmlURL);			
			}

			@unlink($opmlCacheDir.'/'.$tmpFilename);
Exemplo n.º 2
0
		function multiarray_values($ar,$key) {		
			$values = array();
			foreach($ar as $k => $v) {
				if($k === $key) {
					$values[] = $v;
				}
				if (is_array($ar[$k]))
					$values = array_merge($values, func::multiarray_values($ar[$k],$key));
			}
			return $values;
		}