Views 16351 Votes 0 Comment 0
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
?

Shortcut

PrevPrev Article

NextNext Article

Larger Font Smaller Font Up Down Go comment Print
<사용방법> 
1. php가 지원되는 계정에 본 파일을 업로드한다. (예:http://slrclub.com/cyworld.php) 
2. 싸이월드에 올려둔 사진의 url을 확인한다. url에서 서버위치와 파일 이름(redirect뒷 부분)을 복사한다. 
(예:http://cyimg.cyworld.nate.com/common/file_down.asp?redirect=%2Fd11003%2F2004%2F12%2F14%2F8%2FIMG%5F2904%2Ejpg) 
위의 예에서 host는 cyimg입니다. 예전 홈피의 경우 img일겁니다. 
3. 원하는 곳에 가서 img태그로 다음과 같이 연결한다. 
<img src="http://slrclub.com/cyworld.php?host=cyimg&redirect=%2Fd11003%2F2004%2F12%2F14%2F8%2FIMG%5F2904%2Ejpg" /> 
만약 host가 cyimg인 경우에는 host=cyimg&를 생략해도 됩니다. 

사용예: 싸이월드에 올려진 파일을 외부링크 걸고 싶을때 cyworld.php 라는 파일을 php가 지원되는 계정에 업로드 한 다음에 이 파일을 이용해서 불러들이면 됩니다. 

-- 소스 -- 
<? 
    if( !$redirect ) exit(); 
    if( !$host ) $host = "cyimg"; 
    
    $url = "http://".$host.".cyworld.nate.com/common/file_down.asp"; 
    
    $http = new Http; 
    $http->is_bin = 1; 
    $http->is_bin_len = 1024000; 
    $http->setURL( $url ); 
    $http->setParam("redirect", urldecode($redirect)); 
    $http->setCookie("ETC", "Referer=True"); // 쿠키 세팅 
    $result = $http->send("GET"); 
    echo( $result ); 
?> 
<? 
    /** 
    * HTTP 소켓 클래스 
    * 
    * @author 희망주기 (hopegiver@korea.com) 
    * @date 2002-09-06 
    * @access public 
    */ 
    class Http { 
        
        var $host; 
        var $port; 
        var $path; 
        var $cookie; 
        var $variable; 
        var $referer; 
        var $_header; 
        var $auth; 
        var $debug; 
        var $query; 
        var $is_bin; 
        var $is_bin_len; 
        
        # constructor 
        function Http($url="") { 
            $this->port = 80; 
            $this->is_bin = 0; 
            $this->is_bin_len = 102400; 
            if($url) $this->setURL($url); 
        } 
    
        /** 
        * URL 지정함수 
        * 
        * @param string $url : URL 
        * @return boolean 
        */ 
        function setURL($url) { 
            // if(!$m = parse_url($url)) return $this->setError("파싱이 불가능한 URL입니다."); 
            if(!$m = parse_url($url)) return 0; 
            // if($m['scheme'] != "http") return $this->setError("HTTP URL이 아닙니다."); 
            if($m['scheme'] != "http") return 0; 
            
            $this->host = $m['host']; 
            $this->port = ($m['port']) ? $m['port'] : 80; 
            $this->path = ($m['path']) ? $m['path'] : "/"; 
            if($m['query']) { 
                $arr1 = explode("&", $m['query']); 
                foreach($arr1 as $value) { 
                    $arr2 = explode("=", $value); 
                    $this->setParam($arr2[0], $arr2[1]); 
                } 
            } 
            if($m['user'] && $m['pass']) $this->setAuth($m['user'], $m['pass']); 
            
            return true; 
        } 
    
        /** 
        * 변수값을 지정한다. 
        * 
        * @param string $key : 변수명, 배열로도 넣을수 있다. 
        * @param string $value : 변수값 
        */ 
        function setParam($key, $value="") { 
            if(is_array($key)) foreach($key as $k => $v) $this->variable[$k] = $v; 
            else $this->variable[$key] = $value; 
        } 
        
        /** 
        * Referer를 지정한다. 
        * 
        * @param string $referer : Referer 
        */ 
        function setReferer($referer) { 
            $this->referer = $referer; 
        } 
    
        /** 
        * 쿠키를 지정한다. 
        * 
        * @param string $key : 쿠키변수명, 배열로도 넣을수 있다. 
        * @param string $value : 쿠키변수값 
        */ 
        function setCookie($key, $value="") { 
            if(is_array($key)) foreach($key as $k => $v) $this->cookie .= "; $k=$v"; 
            else $this->cookie .= "; $key=$value"; 
            if(substr($this->cookie, 0, 1) == ";") $this->cookie = substr($this->cookie, 2); 
        } 
        
        /** 
        * 인증설정함수 
        * 
        * @param string $id : 아이디 
        * @param string $pass : 패스워드 
        */ 
        function setAuth($id, $pass) { 
        $    this->auth = base64_encode($id.":".$pass); 
        } 
        
        /** 
        * POST 방식의 헤더구성함수 
        * 
        * @return string 
        */ 
        function postMethod() { 
            if(is_array($this->variable)) { 
                $parameter = "\r\n"; 
                foreach($this->variable as $key => $val) { 
                    $parameter .= trim($key)."=".urlencode(trim($val))."&"; 
                } 
                $parameter .= "\r\n"; 
            } 
            $query .= "POST ".$this->path." HTTP/1.0\r\n"; 
            $query .= "Host: ".$this->host."\r\n"; 
            if($this->auth) $query .= "Authorization: Basic ".$this->auth."\r\n"; 
            if($this->referer) $query .= "Referer: ".$this->referer."\r\n"; 
            if($this->cookie) $query .= "Cookie: ".$this->cookie."\r\n"; 
            $query .= "User-agent: PHP/HTTP_CLASS\r\n"; 
            $query .= "Content-type: application/x-www-form-urlencoded\r\n"; 
            $query .= "Content-length: ".strlen($parameter)."\r\n"; 
            if($parameter) $query .= $parameter; 
            $query .= "\r\n"; 
            return $query; 
        } 
        
        /** 
        * GET 방식의 헤더구성함수 
        * 
        * @return string 
        */ 
        function getMethod() { 
            if(is_array($this->variable)) { 
                $parameter = "?"; 
                foreach($this->variable as $key => $val) { 
                    $parameter .= trim($key)."=".urlencode(trim($val))."&"; 
                } 
                //$parameter = substr($parameter, 0, -1); 
            } 
            
            $query = "GET ".$this->path.$parameter." HTTP/1.0\r\n"; 
            $query .= "Host: ".$this->host."\r\n"; 
            if($this->auth) $query .= "Authorization: Basic ".$this->auth."\r\n"; 
            if($this->referer) $query .= "Referer: ".$this->referer."\r\n"; 
            if($this->cookie) $query .= "Cookie: ".$this->cookie."\r\n"; 
            $query .= "User-agent: PHP/HTTP_CLASS\r\n"; 
            $query .= "\r\n"; 
            return $query; 
        } 
        
        /** 
        * 데이타 전송함수 
        * 
        * @param string $mode : POST, GET 중 하나를 입력한다. 
        * @return string 
        */ 
        function send($mode="GET") { 
        
            // 웹서버에 접속한다. 
            $fp = fsockopen($this->host, $this->port, $errno, $errstr, 10); 
            // if(!$fp) return $this->setError($this->host."로의 접속에 실패했습니다."); 
            if(!$fp) return 0; 
            
            // GET, POST 방식에 따라 헤더를 다르게 구성한다. 
            if(strtoupper($mode) == "POST") $this->query = $this->postMethod(); 
            else $this->query = $this->getMethod(); 
            
            fputs($fp,$this->query); 
            
            // 헤더 부분을 구한다. 
            $this->_header = ""; // 헤더의 내용을 초기화 한다. 
            while(trim($buffer = fgets($fp,1024)) != "") { 
                $this->_header .= $buffer; 
            } 
            
            // 바디 부분을 구한다. 
            if( $this->is_bin ) { 
                $body = fread($fp, $this->is_bin_len); 
            } else { 
                while(!feof($fp)) { 
                $body .= fgets($fp,1024); 
                } 
            } 
        
            // 접속을 해제한다. 
            fclose($fp); 
        
            return $body; 
        } 
        
        /** 
        * 헤더를 구하는 함수 
        * 
        * @return string 
        */ 
        function getHeader() { 
            return $this->_header; 
        } 
        
        /** 
        * 쿠키값을 구하는 함수 
        * 
        * @param string $key : 쿠키변수 
        * @return string or array 
        */ 
        function getCookie($key="") { 
            if($key) { 
                $pattern = "/".$key."=([^;]+)/"; 
                if(preg_match($pattern, $this->_header, $ret)) return $ret[1]; 
            } else { 
                preg_match_all("/Set-Cookie: [^\n]+/", $this->_header, $ret); 
                return $ret[0]; 
            } 
        } 
    
    } 
?> 
-- / 소스 -- 
    
출처 : http://www.slrclub.com/

?

List of Articles
No. Category Subject Author Date Views
14 Etc [link] iOS(아이폰) 개발 관련 ㅋㅋ hooni 2013.04.23 21503
13 Etc 이클립스(Eclipse) 유용한 단축키 ㅋㅋ hooni 2013.04.23 21763
12 Etc 아두이노 관련 정보.. hooni 2013.04.23 21770
11 Etc 영어공부에 도움될만한 사이트 모음 hooni 2013.05.14 22630
10 Etc [ios] 아이폰 개발 따라하기 ㅋㅋㅋ hooni 2013.04.23 23302
9 Etc 엑셀 함수 총 정리 ㅎㅎ file hooni 2013.06.05 24462
8 Etc 스마트폰 보안 해외 발생 사례~ file hooni 2013.04.23 24936
7 Etc 영작 연습을 위한 실용영어 문장 1001개 (1~500) hooni 2013.06.21 30422
6 Etc 성문 종합 영어 정리된 pdf 파일 file hooni 2013.06.25 30956
5 Etc [svn] 콘솔에서 svn 사용시 레티나용 이미지 add 안될 때.. hooni 2013.09.25 37490
4 Etc [용어] POC, Pilot, BMT에 대한 IT 업계에서 통용되는 의미 hooni 2014.01.02 41951
3 Etc 스파이웨어(BHO) 탐지하는 방법.. hooni 2013.04.23 44404
2 Etc [link] 유용한 사이트 링크. hooni 2013.08.19 71451
1 Etc 베지어 곡선 (Bezier curve) file hooni 2013.08.18 221104
Board Pagination Prev 1 2 3 4 Next
/ 4