마스터욱 0 520 0 0

상황설명을 드리겠습니다.

얼마전 티스토리 API 와 연동을 했습니다.

제 사이트의 게시글을 티스토리에 전송하려는 작업이었습니다.

순조롭게 다 진행이 되었는데, 마지막에 문제가 발생했습니다.

 

이미지가 있는 게시글의 경우, 이미지 경로가 제 사이트의 경로로 잡혀있다보니 티스토리로 게시글을 전송했을때 이미지에 엑박이 뜨는문제였습니다.

고민을 해보았습니다.

 

게시글을 전송하기 전에 img 경로에 url 을 붙여버릴까?

이렇게 하면 이미지가 출력되긴 출력된다. 다만 이미지 트래픽을 모두 내 사이트가 부담하게 됩니다.

안 그래도 가난하고 후달리는 삶에, 호스팅까지 업그레이드 시켜야 하겠느냐? 라는 부담감이 발생하기 시작했습니다.

 

그러다가 문득 떠오르는 아이디어!

img 를 base64로 만들어서 전송해버리자!

관대한 티스토리는 이해해줄것이다!

 

그런데 작업이 쉽지는 않았습니다.

그넘의 정규식, 규식이형이랑과의 데이트를 해야하기 때문입니다.

하지만~, 역시 굴링이형은 우리를 실망시켜주지 않았습니다.

굴링이형에게 물어보니 깃허브(github)에 버젓이 개발된 소스코드가 존재했습니다.

개발시간을 훨씬 단축시켜준 구글형님과 깃허브님께 이 영광을 바칩니다.

아래는 소스코드입니다.

 

사용자는 "절대경로" 와 "내용" 만 본인의 변수로 수정하여 사용하시면 됩니다.

 

그런데 네이버는 지가 알아서 base64로 만들어 버린던데, 이런거 보면 네이버가 편리하긴 편리해~

 

  1. //이미지를 base64 로 모두 인코딩하자.
  2. $offset = 0;
  3. $srcDir = 절대경로;
  4. $template_content = 내용;
  5. while (preg_match('/<img src="([^"]*)"/i'$template_content$match, PREG_OFFSET_CAPTURE, $offset) >= 1) {
  6.     $matchTag = $match[0][0];
  7.     $matchOffset = $match[0][1];
  8.     $imgFile = $srcDir.'/'.$match[1][0];
  9.     $ext = pathinfo($imgFile, PATHINFO_EXTENSION);
  10.     if (!file_exists($imgFile)) {
  11.         echo "Unable to find image file {$imgFile}\n";
  12.         return;
  13.     }
  14.     $img_tag = "<img src='data:image/".$ext.";base64," . base64_encode(file_get_contents($imgFile)) . "'";
  15.     // Replace the IMG src link tag with IMG embed content
  16.     $template_content = substr_replace($template_content$img_tag$matchOffsetstrlen($matchTag));
  17.     // offset for next loop
  18.    $offset = $matchOffset + strlen($img_tag);
  19. }
  20. //echo $template_content;exit;

Comments


제목 글쓴이
크롤링 라이브러리 스누피(Snoopy) 사용시 노하우 팁! 마스터욱
PHP 숫자 0 을 인식하는 방법 마스터욱
텔레그램 채널 알림(푸시) API 마스터욱
apmsetup 대신에 쓸만한 프로그램, 오토셋(Autoset) 댓글 2 마스터욱
파생상품 거래란? 댓글 1 비회원
jQuery ezPlus 그누보드 상세페이지 이미지에 적용소스 마스터욱
bitmex API - 주문리스트 가져오기(order list) 마스터욱
bitmex API - 주문하기(order) 마스터욱
CI(코드이그나이터) 세팅정리 마스터욱
PHP 사진파일의 GPS 좌표값 뽑아내기 마스터욱
CIBoard(코드이그나이터) 에서 접속통계 쌓지 않는 방법 마스터욱
CI(코드이그나이터) 컨트롤러 바로 호출하기 마스터욱
구글지도 API를 이용한 좌표값 -> 주소문자열 가져오기 마스터욱
날짜정보 리턴 마스터욱
imagecreatefrompng 가 안 먹던 현상 해결 마스터욱
CI(코드이그나이터) 의 템플릿 파일에서 모델(Model) 호출하기 마스터욱
자주 사용하는 정규식 마스터욱
스마트폰으로 찍은 사진의 회전을 자동으로 되돌려주는 소스 마스터욱
php library - pdfparser   마스터욱
스마트에디터에서 아이폰으로 이미지 업로드시에 상하/좌우 회전이 되던 현상 수정방법 마스터욱
카테고리