URL 주소 짧게 해주는 API 서비스 소개
페이지 정보
작성자 오원장쪽지보내기 메일보내기 자기소개 아이디로 검색 전체게시물 댓글 0건 조회 3,868회 작성일 14-01-30 00:54본문
오픈 API
shortUrl 생성
1. 요청 URL(request url)
http://surl.kr/Api/create.php
2. 요청 변수(request parameter)
요청변수 | 값 | 설명 |
---|---|---|
longUrl | string (필수) | 줄이고자 하는 긴 원본 URL을 입력합니다. |
type | string : 기본값 json, (json or xml) | 반환받을 결과값의 형식을 지정합니다. |
- get 요청시 샘플 URL
'http://lepas.pe.kr/main/?document_srl=984' 을 줄이고자 할 경우 :http://surl.kr/Api/create.php?type=json&longUrl=http%3A%2F%2Flepas.pe.kr%2Fmain%2F%3Fdocument_srl%3D984
3. 반환값(return value)
[json 형식]
- 구조
- longUrl : 긴 원본 URL
- status : 처리 성공여부 (success or failure)
- shortUrl : 짧은 URL
- key : 고유 키값
- 구조 예제 { "longUrl":"http://lepas.pe.kr/main/?document_srl=984", "status":"success", "shortUrl":"http://surl.kr/12e", "key":"12e" }
[xml 형식]
- 구조
- long_url : 긴 원본 URL
- status : 처리 성공여부 ('success' or 'failure')
- shor_url : 짧은 URL
- key : 고유 키값
- 구조 예제 1
<?xml version="1.0" encoding="UTF-8" ?> <surl> <long_url>http://lepas.pe.kr/main/?document_srl=984</long_url> <status>success</status> <short_url>http://surl.kr/12e</short_url> <key>12e</key> </surl> - 구조 예제 2
<?xml version="1.0" encoding="UTF-8" ?> <surl> <long_url>http://a.b</long_url> <status>failure</status> <msg>URL이 너무 짧습니다.</msg> </surl>
4. 예제소스
[php]
- 짧은 주소 생성 함수
- 소스
<?php # 짧은 주소 생성 함수 function getSurl($longUrl) { $url = 'surl.kr'; $longUrl = urlencode($longUrl); $fp = @fsockopen($url, 80,$errno,$errstr,10); if ($fp){ fwrite($fp, "GET /Api/create.php?longUrl={$longUrl} HTTP/1.0\r\nHost: $url\r\n\r\n"); while (!feof($fp)) $out .= fread($fp, 1024); fclose($fp); $out = explode("\r\n\r\n",$out); array_shift($out); $out = implode("",$out); } if($out){ $outObj = json_decode($out); return is_object($outObj) && $outObj->status=='success' && $outObj->shortUrl ? $outObj->shortUrl : $longUrl; } else{ return $longUrl; } } $longUrl = "http://lepas.pe.kr/main/?document_srl=984"; $surl = getSurl($longUrl); echo "원본 URL : " . $longUrl . " <br /> 단축 URL : " . $surl; ?> - 출력 원본 URL : http://lepas.pe.kr/main/?document_srl=984
단축 URL : http://surl.kr/12e
- 소스
- 응용함수 - 문장에서 URL 추출하여 surl로 변환후 링크걸기
- 소스
<?php # 짧은 주소 생성 함수 function getSurl($longUrl) { $url = 'surl.kr'; $longUrl = urlencode($longUrl); $fp = @fsockopen($url, 80,$errno,$errstr,10); if ($fp){ fwrite($fp, "GET /Api/create.php?longUrl={$longUrl} HTTP/1.0\r\nHost: $url\r\n\r\n"); while (!feof($fp)) $out .= fread($fp, 1024); fclose($fp); $out = explode("\r\n\r\n",$out); array_shift($out); $out = implode("",$out); } if($out){ $outObj = json_decode($out); return is_object($outObj) && $outObj->status=='success' && $outObj->shortUrl ? $outObj->shortUrl : $longUrl; } else{ return $longUrl; } } # 응용함수 - 문장에서 URL 추출하여 surl로 변환후 링크걸기 function regURL($msg){ preg_match_all("/(http|https|ftp|mms)\:\/\/([\\x80-\\xff\w\/\.\?\-\#\=\&\&\%\+]+)/i",$msg,$matches); foreach($matches[0] as $longUrl){ if(strlen($longUrl) > 30 && !preg_match("/^http:\/\/surl\.kr/i",$longUrl) && !preg_match("/^http:\/\/www\.surl\.kr/i",$longUrl)){ $shortUrl = getSurl(htmlspecialchars_decode($longUrl)); $msg = str_replace($longUrl, "<a href='{$shortUrl}?PHPSESSID=28d252f879e256a21f872e2d305e7bc3' target='_blank'>{$shortUrl}</a>",$msg); } else{ $msg = str_replace($longUrl, "<a href='{$longUrl}?PHPSESSID=28d252f879e256a21f872e2d305e7bc3' target='_blank'>{$longUrl}</a>",$msg); } } return $msg; } $msg = "SURL을 소개합니다. http://lepas.pe.kr/main/?document_srl=984 왼쪽의 URL을 클릭해주세요."; $msg = regURL($msg); echo $msg; ?> - 출력 SURL을 소개합니다. http://surl.kr/12e 왼쪽의 URL을 클릭해주세요.
- 소스
[jquery]
- "URL 축소" 버튼 클릭시 Textarea에서 URL을 추출하여 surl로 변환하기
- 소스
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta charset="UTF-8" /> <title>Surl JQuery Demo</title> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.js"></script> <script> function makeSurlInTextArea(objId){ var textAreaObj = $('#'+objId); var list = textAreaObj.text().match(/(http|https|ftp|mms)\:\/\/([\\x80-\\xff\w\/\.\?\-\#\=\&\&\%\+]+)/gi); if(list != null){ var cnt = list.length; for(var i=0;i<cnt;i++){ $.ajax({ type: "get", url: "http://surl.kr/Api/create.php", data: "longUrl=" + encodeURIComponent(list[i]), dataType: "json", success: function(res){ if(res.status=='success') textAreaObj.text(textAreaObj.text().replace(res.longUrl,res.shortUrl)); } }); } } return false; } </script> </head> <body> <a href="#" onclick="return makeSurlInTextArea('myTextarea')">URL 축소</a> <textarea id="myTextarea" cols="100" rows="5">SURL을 소개합니다. http://lepas.pe.kr/main/?document_srl=984 왼쪽의 URL을 클릭해주세요. - 출력
Demo Page View
- 소스
관련링크
- http://surl.kr/Api/ 2279회 연결
댓글목록
등록된 댓글이 없습니다.