요즘 PHP 코딩할때 사용하는 툴인데요. 종전에는 Editplus를 사용했죠. 그런데 리모트 작업할때 sftp 로 저장 시 업로드가 안되고 20초 뒤에 다시 시도해야 되는 네트워크의 불안함이 저를 다른 툴에 눈을 돌리게 했다는.. PhpStorm .. 물건이네요. 편해요. 내가 등록했던 함수, 클래스 모두 기억했다가 자동완성 시켜주는건 기본이고 MySQL, SSH Terminal, 프로젝트 관리, 프로젝트 단위로 […]
가끔 커스텀 디자인을 요구하는 경우가 발생하는데 주요 소셜미디어(SNS, Social Media)는 현재 페이지의 url을 보내면 현재 공유 혹은 좋아요 된 수치를 제공한다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
// Twitter 가져오기 function get_tweets($url) { $json_string = file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url=' . $url); $json = json_decode($json_string, true); return intval( $json['count'] ); } // 페이스북 좋아요 수 가져오기 function get_likes($url) { $json_string = file_get_contents('http://graph.facebook.com/?ids=' . $url); $json = json_decode($json_string, true); return intval( $json[$url]['shares'] ); } // 구글 +1 가져오기 function get_plusones($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_URL, "https://clients6.google.com/rpc"); curl_setopt($curl, CURLOPT_POST, 1); curl_setopt($curl, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_HTTPHEADER, array('Content-type: application/json')); $curl_results = curl_exec ($curl); curl_close ($curl); $json = json_decode($curl_results, true); return intval( $json[0]['result']['metadata']['globalCounts']['count'] ); } // 링크드인 쉐어수 가져오기 function get_linkedin_shares($url) { $json_string = file_get_contents("http://www.linkedin.com/countserv/count/share?url=$url&format=json"); $json = json_decode($json_string, true); return intval( $json['count'] ); } |
요즘 텔레그램 많이 쓰시죠. 그런데 채팅 중 물결무늬(~)를 쓸 수 없더라고요. 아쉬운대로 물결무늬를 사용할 방법이 있는데요. 특수문자에서 꺼내 쓰는 방법입니다. 쉬우니 한번 해보세요. ^^; ㄱ 누르고 한자 누르고 3번째 8번입니다. 9번에 있는 사람도 있나봐요.
스타일 부분(style)
1 2 3 4 |
#progress_bar {margin: 10px 0;padding: 3px;border: 1px solid #000;font-size: 14px;clear: both;opacity: 0;-moz-transition: opacity 1s linear;-o-transition: opacity 1s linear;-webkit-transition: opacity 1s linear;} #progress_bar.loading {opacity: 1.0;} #progress_bar .percent {background-color: #99ccff;height: auto;width: 0;} .collapse { display:none; } |
스크립트 부분(script)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 |
var progress = document.querySelector('.percent'); var insPic = (function loadImageFile() { if (window.FileReader) { var ImagePre; var ImgReader = new window.FileReader(); var fileType = /^(?:image\/bmp|image\/gif|image\/jpeg|image\/png|image\/x\-xwindowdump|image\/x\-portable\-bitmap)$/i; progress.style.width = '0%'; progress.textContent = '0%'; ImgReader.onerror = errorHandler; ImgReader.onprogress = updateProgress; ImgReader.onabort = function(e) { alert('File read cancelled'); }; ImgReader.onloadstart = function(e) { document.getElementById('progress_bar').className = 'loading'; }; ImgReader.onload = function (Event) { if (!ImagePre) { var newPreview = document.getElementById("Preview"); ImagePre = new Image(); //ImagePre.style.width = "75px"; //ImagePre.style.height = "75px"; newPreview.appendChild(ImagePre); } ImagePre.src = Event.target.result; // Ensure that the progress bar displays 100% at the end. progress.style.width = '100%'; progress.textContent = '100%'; setTimeout("document.getElementById('progress_bar').setAttribute('class', 'collapse');", 2000); }; return function () { var img = document.getElementById("picture").files; if (!fileType.test(img[0].type)) { alert("이미지 파일을 업로드 하세요"); return; } ImgReader.readAsDataURL(img[0]); } } document.getElementById("Preview").src = document.getElementById("picture").value; })(); function errorHandler(evt) { switch(evt.target.error.code) { case evt.target.error.NOT_FOUND_ERR: alert('File Not Found!'); break; case evt.target.error.NOT_READABLE_ERR: alert('File is not readable'); break; case evt.target.error.ABORT_ERR: break; // noop default: alert('An error occurred reading this file.'); }; } function updateProgress(evt) { // evt is an ProgressEvent. if (evt.lengthComputable) { var percentLoaded = Math.round((evt.loaded / evt.total) * 100); // Increase the progress bar length. if (percentLoaded < 100) { progress.style.width = percentLoaded + '%'; progress.textContent = percentLoaded + '%'; } } } |
본문부분(HTML) – 굵은 빨간색으로 표시한 곳이 핵심부분이며 나머지는 위 사진에 나타만 전체소스입니다. 그 밖에 스타일은 알아서. ㅎㅎ
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
<!-- 사진등록 --> <div class="agree_layout01"> <div class="layout01"> <div class="title01">사진등록<span><a href="#" onclick="closePic();"><img src="/images/btn_close02.png"></a></span></div> <div class="contents01"> <div class="photo01"> <table class="register01"> <tr> <th><img src="/images/login/icon01.png"> 사진등록 :</th> <td> <span class="img01" id="Preview"></span> <span class="mo01" id="btnReg"><img src="/images/btn_modify01.png"></span> <input type="file" id="picture" name="picture" accept="image/*" onchange="insPic();" class="collapse"> <div id="progress_bar" class="collapse"><div class="percent">0%</div></div> </td> </tr> </table> <div class="photo01_btn"><a href="#" id="regPicture"><img src="/images/btn_upload02.png"></a></span></div> </div> </div> </div> </div> <!-- 사진등록 끝--> |
시간을 친숙한 텍스트로 표현하기(새벽,아침,저녁,밤,오전,오후)
1 2 3 4 5 6 7 8 9 10 11 12 |
// 시간을 읽기편한 텍스트로 변경 function getTimeText($hour) { if($hour==0) $timeTxt="자정"; else if($hour>0 && $hour<5) $timeTxt="새벽"; else if($hour>4 && $hour<9) $timeTxt="아침"; else if($hour>8 && $hour<12) $timeTxt="오전"; else if($hour==12) $timeTxt="정오"; else if($hour>12 && $hour<18) $timeTxt="오후"; else if($hour>17 && $hour<22) $timeTxt="저녁"; else if($hour>21 && $hour<24) $timeTxt="밤"; return $timeTxt; } |
함수 실행 결과
1 2 3 |
print getTimeText(12); // 정오 print getTimeText(24); // 자정 print getTimeText(8); // 아침 |
안녕하세요. 꾸샤입니다. 꾸샤닷컴이 새단장을 했습니다. 그러나, 기존 꾸샤닷컴에 포스팅들은 모두 사라졌습니다. 자료가 너무 오래되서, 현 시점에 도움이 될만한게 없다는 판단입니다. 앞으로 하나씩 만들어보겠습니다. 감사합니다.