예제 #1
0
파일: Header.php 프로젝트: pmoitech/pyrite
 public function __construct($hex)
 {
     $this->flightGroupCount = getShort($hex, self::HEADER_FG);
     $this->messageCount = getShort($hex, self::HEADER_MSG);
     $this->briefingOfficers = getByte($hex, self::HEADER_BRIEF);
     $this->capturedOnEject = getBool($hex, self::HEADER_CAPTURED);
 }
예제 #2
0
function getFreespace($path)
{
    if (preg_match("#^(https?|ftps?)://#si", $path)) {
        return false;
    }
    $freeBytes = disk_free_space($path);
    $totalBytes = disk_total_space($path);
    $usedBytes = $totalBytes - $freeBytes;
    $percentFree = 100 / $totalBytes * $freeBytes;
    $percentUsed = 100 / $totalBytes * $usedBytes;
    echo "All space: " . getByte($totalBytes) . "<br />";
    echo "Used space: " . getByte($usedBytes);
    printf(" (%01.2f%%)", $percentUsed);
    echo "<br />";
    echo "Free space: " . getByte($freeBytes);
    printf(" (%01.2f%%)", $percentFree);
}
예제 #3
0
파일: Header.php 프로젝트: pmoitech/pyrite
 public function __construct($byteString)
 {
     $this->platformID = getShort($byteString, self::HEADER_START);
     $this->flightGroupCount = getShort($byteString, self::HEADER_FG);
     $this->messageCount = getShort($byteString, self::HEADER_MSG);
     for ($i = 0; $i < self::IFF_COUNT; $i++) {
         $this->IFFNames[] = getString($byteString, self::HEADER_IFF + $i * self::IFF_LENGTH, self::IFF_LENGTH);
     }
     for ($r = 0; $r < self::REGION_COUNT; $r++) {
         $this->regionNames[] = getString($byteString, self::HEADER_REGION + $r * self::REGION_LENGTH, self::REGION_LENGTH);
     }
     for ($c = 0; $c < self::CARGO_COUNT; $c++) {
         $this->globalCargos[] = new GlobalCargo(substr($byteString, self::HEADER_CARGO + $c * GlobalCargo::LENGTH, GlobalCargo::LENGTH));
     }
     for ($g = 0; $g < self::GG_COUNT; $g++) {
         $this->globalGroupNames[] = getString($byteString, self::HEADER_GG + $g * self::GG_LENGTH, self::GG_LENGTH);
     }
     $this->hangar = getByte($byteString, self::HEADER_HANGAR);
     $this->timeLimitMinutes = getByte($byteString, self::HEADER_TIME);
     $this->endMissionWhenComplete = getBool($byteString, self::HEADER_END);
     $this->briefingOfficer = getByte($byteString, self::HEADER_OFFICER);
     $this->briefingLogo = getByte($byteString, self::HEADER_LOGO);
     $this->hex = \Hex::hexToStr($byteString);
 }
예제 #4
0
/** 파일 체크
 * @class file
 * @param
		-dir: 업로드할 디렉토리
		-target: $_FILES 중에서 하나만 지정한 key값
		-size: 최대용량 제한
		-width: 이미지 너비 제한
		-height: 이미지 높이 제한
		-filename: 파일이름 강제로 지정하기
		-is_overwrite: 같은 파일명이 있으면 덮어 씌움
		-is_download: 다운로드만 받을 수 있도록 파일명을 조절
		-is_exists: 같은 파일명이 있으면 중지
		-is_image: 이미지 파일만 허용
		-is_none: 파일 없음을 허용
 */
function chkFile($param = '')
{
    global $mini, $_FILES;
    iss($param);
    $param = param($param);
    iss($param['dir']);
    iss($param['target']);
    iss($param['size']);
    iss($param['width']);
    iss($param['height']);
    iss($param['filename']);
    iss($param['is_overwrite']);
    iss($param['is_download']);
    iss($param['is_exists']);
    iss($param['is_image']);
    iss($param['is_none']);
    if (!is_array($_FILES) && !$param['is_none']) {
        __error("업로드된 파일이 없습니다");
    }
    if (count($_FILES) < 1) {
        __error("업로드된 파일이 없거나, 용량을 초과 했습니다.");
    }
    if (!$param['dir']) {
        __error("업로드 디렉토리가 지정되지 않았습니다");
    }
    if (!empty($param['dir']) && !preg_match("/(\\/|\\\\)\$/", $param['dir'])) {
        $param['dir'] .= "/";
    }
    // 업로드 디렉토리 생성
    if (!is_dir($param['dir'])) {
        if (!@mkdir($param['dir'], 0707)) {
            __error("[{$param['dir']}] 업로드 디렉토리를 생성할 수 없습니다.");
        }
    }
    $limitsize = getByte(get_cfg_var("upload_max_filesize"), 'decode');
    $param['size'] = $param['size'] && $limitsize > $param['size'] ? $param['size'] : $limitsize;
    foreach ($_FILES as $key => $val) {
        iss($val['is_image']);
        //// 타겟 체크
        if ($param['target'] && $param['target'] != $key) {
            continue;
        }
        //// 파일 없음 체크
        if (!$val['name']) {
            if ($param['is_none']) {
                continue;
            } else {
                __error("[{$key}] 파일명이 없습니다");
            }
        } else {
            $filename = $filename_org = $val['name'];
            $tmp_filename = str($val['name'], 'encode', 1);
        }
        //// 기본 error 체크
        if (!empty($val['error'])) {
            switch ($val['error']) {
                // 스킵
                case 'UPLOAD_ERR_OK':
                case 0:
                case 'UPLOAD_ERR_NO_FILE':
                case 4:
                    break;
                case 'UPLOAD_ERR_INI_SIZE':
                case 1:
                    __error("[{$tmp_filename}] 파일 용량이 " . ini_get("upload_max_filesize") . "를 초과할 수 없습니다.\\n(php.ini, upload_max_filesize 설정에서 변경가능)");
                case 'UPLOAD_ERR_FORM_SIZE':
                case 2:
                    __error("[{$tmp_filename}] 파일 용량이 초과 되었습니다.\\n(해당 Form 의 MAX_FILE_SIZE 설정에서 변경 가능합니다)");
                case 'UPLOAD_ERR_PARTIAL':
                case 3:
                    __error("[{$tmp_filename}] 업로드된 파일이 올바르지 않습니다");
                case 'UPLOAD_ERR_NO_TMP_DIR':
                case 6:
                    __error("임시 폴더가 없어 파일을 업로드 할 수 없습니다. 서버 관리자에게 문의해 주세요.\\n(설정된 임시 폴더는 " . ini_get("upload_tmp_dir") . " 입니다)");
                case 'UPLOAD_ERR_CANT_WRITE':
                case 7:
                    __error("디스크에 쓰기를 실패 했습니다. 서버 관리자에게 문의해 주세요");
            }
        }
        //// 파일명 체크
        if ($param['filename']) {
            $filename = $param['filename'];
        }
        $filename = str_replace(array("|", "'", "\"", "\\"), "", $filename);
        $filename = trim($filename);
        //// 확장자 체크
        $val['ext'] = strtolower(substr(strrchr($filename, "."), 1));
        //// 이미지 관련 체크
        $is_image = getimagesize($val['tmp_name']);
        if (!empty($is_image) && is_array($is_image)) {
            $val['is_image'] = 1;
            $val['width'] = $is_image[0];
            $val['height'] = $is_image[1];
        } else {
            $val['is_image'] = 0;
        }
        //// 파일타입
        $val['type'] = getFileType($val['ext']);
        if ($val['type'] == 'image' && empty($val['is_image'])) {
            __error("[{$tmp_filename}] 이미지 파일이 아닙니다");
        }
        if (!$val['is_image'] && $param['is_image']) {
            __error("[{$tmp_filename}] 이미지 파일만 허용합니다");
        }
        if ($val['is_image']) {
            if ($param['width'] && $param['width'] < $val['width']) {
                __error("[{$tmp_filename}] 이미지 너비가 {$param['width']}px 를 초과 했습니다. (현재 {$val['width']}px)");
            }
            if ($param['height'] && $param['height'] < $val['height']) {
                __error("[{$tmp_filename}] 이미지 높이가 {$param['height']}px 를 초과 했습니다. (현재 {$val['height']}px)");
            }
        }
        //// 한글제거
        if (strCut($filename, 0, 'multi')) {
            $filename = urlencode($filename);
        }
        //// 기호제거
        $filename = preg_replace("/[^0-9a-z_\\-\\.]/i", "", $filename);
        //// 파일명 변경
        if ($param['is_download']) {
            $filename = str_replace(".", "_", $filename);
            $filename .= ".mb";
        }
        //// 중복 체크
        if (file_exists($param['dir'] . $filename) && !$param['is_overwrite']) {
            if ($param['is_exists']) {
                __error("[{$tmp_filename}] 중복된 파일명입니다.");
            }
            $a = 0;
            $tmp2_filename = $filename;
            while (file_exists($param['dir'] . $tmp2_filename)) {
                $a++;
                if (strpos($filename, ".") !== false) {
                    $tmp2_filename = preg_replace("/(\\.?[^\\.]+)\$/is", $a . "\\1", $filename);
                } else {
                    $tmp2_filename = $filename . $a;
                }
            }
            $filename = $tmp2_filename;
        }
        //// 내용 중복
        if (!empty($val['size']) && !empty($mini['board']['use_file_unique']) && !empty($mini['board']['no'])) {
            if (sql("SELECT COUNT(*) FROM {$mini['name']['file']} WHERE id={$mini['board']['no']} and hash='" . str(getHash($val), 'encode', 1) . "'")) {
                __error("[{$tmp_filename}] 이미 같은 파일이 있습니다");
            }
        }
        //// 용량 체크
        if ($param['size'] && $param['size'] < $val['size']) {
            __error("[{$tmp_filename}] 파일 용량이 " . number_format($param['size']) . " bytes를 초과할 수 없습니다\\n(현재 {$val['size']}bytes)");
        }
        if ($val['size'] <= 0) {
            __error("[{$tmp_filename}] 파일 용량은 0 byte 이상이어야 합니다");
        }
        //// 변수 입력
        $val['path'] = $param['dir'] . $filename;
        $val['path_only'] = $param['dir'];
        $val['name_insert'] = $filename;
        $_FILES[$key] = $val;
    }
}
예제 #5
0
파일: Mission.php 프로젝트: pmoitech/pyrite
 function lookupSwitch($switch, $value)
 {
     $value = getByte($value);
     return "Unknown lookup switch {$value}";
 }
예제 #6
0
파일: temp.php 프로젝트: bluecat/iiwork-php
/** 파일 파서
 * @class file
 * @param
		$name: description
 * @return 
 */
function parseFile(&$data, $mode = '')
{
    global $mini;
    //// 초기화
    if (!isset($data['hit'])) {
        $data['hit'] = 0;
    }
    if (!isset($data['width'])) {
        $data['width'] = 0;
    }
    if (!isset($data['height'])) {
        $data['height'] = 0;
    }
    if (!isset($data['error'])) {
        $data['error'] = 0;
    }
    $data['size_out'] = getByte($data['size'], 'encode');
    $data['date_out'] = date("y-m-d", strtotime($data['date']));
    str($data['title'], 'decode');
    // 타입에 따른 이름
    switch ($data['type']) {
        case 'image':
            $data['type_out'] = '이미지';
            break;
        case 'music':
            $data['type_out'] = '음악';
            break;
        case 'movie':
            $data['type_out'] = '동영상';
            break;
        case 'swf':
        case 'flv':
            $data['type_out'] = '플래쉬';
            break;
        default:
            $data['type_out'] = '기타';
    }
    // 링크
    $data['url_thumb'] = "{$mini['dir']}download.php?mode=thumb&amp;no={$data['no']}";
    $data['url_view'] = "{$mini['dir']}download.php?mode=view&amp;no={$data['no']}";
    $data['url_download'] = "{$mini['dir']}download.php?no={$data['no']}";
    // link 변수 생성
    urlToLink($data);
    if ($mode) {
        return $data;
    }
}
예제 #7
0
function getFreespace($path)
{
    $freeBytes = disk_free_space($path);
    $totalBytes = disk_total_space($path);
    $usedBytes = $totalBytes - $freeBytes;
    $percentFree = 100 / $totalBytes * $freeBytes;
    echo "Speicher gesamt:<br /><strong>" . getByte($totalBytes) . "</strong><br /><br />";
    echo "Freier Speicher:<br /><strong>" . getByte($freeBytes);
    printf(" (%01.2f%%)", $percentFree);
    echo "</strong>";
}
예제 #8
0
파일: PRAF.php 프로젝트: iasinDev/PRAF
function _undo($txt, $bpadding, $pattern)
{
    $tl = strlen($txt);
    $ur = "";
    $temp = array();
    for ($ui = 0; $ui < $tl; $ui++) {
        $put = true;
        $sd = getCode($txt, $ui);
        $sy = null;
        $sx = h2d(getByte($sd, $bpadding[$ui]));
        if ($sx < 8) {
            if ($sx % 2 == 0) {
                $put = false;
            }
        }
        if ($put) {
            if ($bpadding[$ui] == "0") {
                $sy = getByte($sd, 1);
            } else {
                $sy = getByte($sd, 0);
            }
            $temp[] = $sy;
        }
    }
    $ull = count($temp);
    for ($ui = 0; $ui < $ull; $ui += 2) {
        $ut = "" + $temp[$ui];
        $ut .= $temp[$ui + 1];
        $ur .= chr(hexdec($ut));
    }
    return unSort($ur, $pattern);
}