개발

[php] iconv 함수 문자 인코딩 / 한글 깨짐 현상 해결

서로 다른 곳에 있는 데이터를 가져오는 경우 캐릭터셋이 맞지 않으면 아래처럼 문자가 깨져보이게 된다. 이 경우에는 아래처럼 iconv 함수를 사용하여 문자 인코딩을 해주면 된다. iconv함수 iconv(기존 Charset, 변환할 Charset, 문자열); 나의 경우에는 웹 DB(UTF-8)에 있는 데이터를 엑셀로 출력하는 코드를 만들고 있었는데 한글문자열 부분만 아래처럼 변경해주면된다. 문자열을 UTF-8에서 UHC로 변경해주는 함수이다. iconv('UTF-8', 'UHC', 문자열); UHC란? UHC(또다른 이름으로는 CP949)는 확장완성형 (Unified Hangul Codeset)의 줄임말인데, EUC-KR에서 표현하지 못한 글자까지 인코딩의 영역을 확장한 캐릭터셋이라고 한다. EUC-KR..

[카페24] 메인 상품 후기 최신글 코드 / 메인에 최근 리뷰 보여주기

카페24 쇼핑몰 메인페이지에 상품 후기 게시판 최신글을 보여주기 위한 코드 $count = 3 에서 보여줄 개수 조정 ~ 부분이 후기에 해당하는 상품을 보여주는 영역 여기서 {몰아이디} 부분에 몰 아이디(카페24 계정아이디)를 입력하면 된다. 썸네일이 아닌 원본 이미지를 불러와서 화질이 선명하게 보이기 위한 것. 등록 날짜를 보여주고 싶으면 {$write_date|date:Y-m-d} 추가 기본 코드 {$category_name} {$subject} {$icon_new} {$content} {$product_img} {$product_name} {$product_price} {$category_name} {$subject} {$icon_new} {$content} {$product_img} {$produ..

[jQuery] 스크립트로 배경 이미지 변경하기 (background-image)

보통은 jQuery로 css를 조정하는 경우, css 파일과 동일하게 속성값을 지정하면 되지만, jQuery 스크립트로 배경 이미지를 변경하고 싶은 경우에는 background가 아닌 background-image로 작성해주어야 작동이 된다. 작동X $("#section").css({"background":"url(img.png)"}); 작동O $("#section").css("background-image", "url(img.png)"); 다른 속성값과 사용할 땐 아래처럼 콤마로 구분하여 사용 가능 $("#section").css({ "background":"url(img.png)", "background-repeat" : "no-repeat", "background-position":"center c..

사업자번호 유효성/폐업여부 확인 (자바스크립트, 공공데이터포털 API)

1. 자바스크립트로 확인하기 (단순 유효성 검사) 사업자 등록번호는 123-45-67890 이런식으로 10 자리 구조이다. 이때 각 구성 요소의 의미는 아래와 같다. 123 (3자리): 국세청 / 세무서별 코드 45 (2자리) : 개인 법인 구분코드 6789(마지막4자리) : 과세/면세/법인 사업자 등록/지정일자 일련번호 0(마지막 1자리) : 검증번호 여기서 마지막 1자리로 유효한 사업자 등록번호인지 확인이 가능하다. 예를 들어 사업자번호가 123-45-67891 인 경우, 1. 마지막 자리 1을 제외한 사업자번호 앞 9자리 인증키 9자리의 각 자리수를 각각 곱하여 전부 더해준다. (인증키값 = 1 3 7 1 3 7 1 3 5) S = (1 * 1) + (2 * 3) + (3 * 7) + (4 * 1)..

[php] csv 파일 다운 한글 깨짐 해결 방법

온라인상에서 csv파일로 데이터를 다운받게하면 종종 한글이 깨져보일 때가 있다. 메모장으로 열어서 EUC-KR로 변경한 뒤 저장한다음 엑셀로 여는 방법도 있지만, 일일히 변경해서 열려면 번거롭다. 한글이 깨져보이지 않고 csv 파일을 다운 받을 수 있도록 아래 코드들을 추가하여 해결이 가능하다. 1) charset을 UTF-8로 설정한다. header('Content-type: text/csv; charset=utf-8'); 2) header아래쪽에 echo "\xEF\xBB\xBF"; 한줄(엔티안이라고 부른다고 한다)을 추가한다. echo "\xEF\xBB\xBF"; * 참고로 \xEF\xBB\xBF 이 문자는 UTF-8을 16진수로 표기한 것인데, 특정 문구를 넣어서 문서가 제대로된 캐릭터셋 값을 가..

sql 컬럼 내용 중 특정 문자 바꾸기

DB의 수많은 데이터 중에 특정 컬럼의 내용을 변경하고 싶은 경우 아래와 같이 명령문을 사용하면 된다. UPDATE 테이블명 SET 컬럼명 = REPLACE(컬럼명 ,'변경전 문자','변경후 문자') 예시 아래와 같이 하면, member 테이블에서 mb_hp 컬럼 중 '-'를 공백으로 처리하여 회원 핸드폰 번호의 -를 한번에 없앨 수 있다. UPDATE member SET mb_hp = REPLACE(mb_hp ,'-','')

[오류] Swiper 오류 해결 Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'.

잘 쓰고 있던 swiper 스크립트에서 어느날 갑자기 이런 오류가 떴다. Uncaught TypeError: Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'. 구글링해봤더니 Window에 파라미터를 지정해야 해결이 가능한것 같은데, 그동안 잘 작동하던게 갑자기 오류가 뜬 경우라 스크립트를 수정하고싶지는 않았다. 혹시나하고 swiper-bundle.min.js 경로를 다른 것으로 변경해보았더니 해결되었다. 기존에 swiper-bundle.min.js 을 외부링크로 불러와서 사용했는데 업데이트가 되면서 일부 코드와 맞지 않았던게 있던 것 같다. 이럴 땐 다른 파일로 변경해보면 해결이 될 수 있겠다. 기..

[그누보드] 아이코드 SMS 문자보내기

글등록시, 회원가입 완료 시 등 여러 상황에서 활용 가능한 문자보내기 코드. 발신번호는 아이코드에서 미리 등록한 발신번호만 가능하고, 환경설정에서 문자 사용 체크되어있는지 꼭 확인 필요! (발신번호 사전등록하기 : http://www.icodekorea.com/callback_reg/number_register.php) $sms_contents = "문자내용"; // 핸드폰번호에서 숫자만 취한다 $receive_number = preg_replace("/[^0-9]/", "", $row['mb_hp']); // 수신자번호 $send_number = preg_replace("/[^0-9]/", "", $sms5['cf_phone']); // 발신자번호 if ($config['cf_sms_use'] == '..

[카페24] 네이버페이 버튼이 노출되지 않는 경우

네이버페이 승인 받아, 공통인증키 연동도 하였는데 네이버 페이 버튼이 상품페이지와 장바구니에 노출되지 않는 경우 다음의 과정을 체크해보는 것이 좋다. 1) 네이버페이 사용 관련 설정 [카페24 관리자페이지 > 판매채널 > 네이버 > 네이버페이 설정]에 접속하여 노출함/사용함에 체크가 되어있는지 다시 한번 확인한다. 네이버페이 구매 버튼 노출 : 노출함 주문연동 : 사용함 2) 분류별 설정 [상품 > 분류관리 > 상품 분류 관리]에 접속하여 분류별로 가장 하단의 네이버페이 서비스 '사용함'으로 되어있는지 확인한다. 사용안함으로 되어있다면 것은 모두 사용함으로 변경해주고, 하위 분류 동시 적용에 체크하면 하위 카테고리까지 모두 적용된다. 3) 상품별 설정 위의 과정까지는 보통 디폴트 값으로 '사용함'으로 되..

[카페24 오류] 비밀번호 변경/재설정 페이지가 계속 뜨는 경우

쇼핑몰에서 비밀번호 찾기 후, 비밀번호 재설정을 했는데 반영이 되지 않고 계속해서 로그인할 때마다 비밀번호 재설정 페이지가 뜨는 오류가 발생하였는데, 원래 코드로 다시 넣어도 동일한 현상이 반복되었다. 알고보니 layout.html 파일을 수정하면서 핵심 코드가 빠져있었던 것이였다. layout/basic/layout.html 파일에서 태그 다음에 아래 두줄이 들어가 있는지 확인하고, 없으면 추가해주어야한다. 스킨 편집할 때 핵심 코드 빠지지 않게 주의★

[카페24] 상품 목록 품절 아이콘 대신 텍스트로 표기하기

상품이 품절되면 상품 목록에 보통 이런 품절 아이콘이 뜨는데, 이런 아이콘 말고 그냥 텍스트를 보여주고 싶은 경우 수정하는 방법이다. 텍스트로 보여주면 홈페이지 디자인에 맞추어 폰트를 동일한 스타일로 지정할 수 있고, 혹시나 홈페이지가 반응형인 경우 깨져보이지 않는다는 장점이 있다. 참고로, 단순히 아이콘을 다른 아이콘으로 변경하고 싶은 경우에는 카페24 관리자페이지에서 쇼핑몰설정 > 사이트설정 > 아이콘설정에 접속해서 이미지를 교체하면 된다. 품절대신 Out of stock이나 Sold Out 등 텍스트로 표현하고 싶은 경우 아래와 같이 코드를 추가해주면 된다. 상품분류(product/list.html) 파일에서 상품목록 와사이에 원하는 위치에 {$soldout_icon}를 추가한다. 품절 텍스트의 위..

[php] 에러메시지 나타내기 / php 오류 찾기

php 코드작업을 하다가 제대로 작동안할 때, 일부러 에러메세지를 출력하여 어디서 오류가 났는지 확인 할 수가 있다. 아래 코드를 파일 안에 넣어준다. 그러면 아래처럼 코드를 추가한 페이지에 에러메세지가 뜨게 된다. 이 에러메세지를 확인한 후, 알맞게 코드를 수정하면 된다. 아래 메세지의 경우에는 변수들이 제대로 정확히 정의되지 않아서 발생한 에러이다. 반대로 에러메세지가 뜨는 경우, 뜨지 않게 하려면 아래 코드를 추가하면 된다.

[jQuery] 모바일/PC 디바이스 구분하여 스크립트 다르게 보여주기

디바이스 화면 크기에 따라 스크립트를 다르게 적용(반응형)하는 방법은 아래 글 참고! (화면 크기만으로 구분하므로, PC이더라도 화면 크기가 작아지면 모바일 버전으로 나오게 된다.) https://hongpage.kr/20 [jQuery] 디바이스 크기별로 jquery 스크립트 다르게 불러오기 (반응형) 홈페이지가 반응형인 경우, 디바이스 크기별 jQuery 스크립트를 다르게 불러와야하는 경우가 종종있다. 같은 슬라이더를 쓰더라도 PC버전과 Mobile 버전의 속성을 다르게 할 수도 있는데 아래와 같 hongpage.kr 아래의 방법은 디바이스 크기가 아니라 디바이스 기종에 따라서 모바일과 모바일이 아닌 경우를 구분하는 제이쿼리 스크립트이다. 따라서 PC에서 화면을 작게한다해도 모바일 스크립트가 적용되지..

[php] Warning: Illegal string offset 'file' 오류수정

파일을 수정한 적도 없는데, 어느 날 갑자기 게시판 글 수정 페이지에서 파일 에러 문구가 떴다. Warning: Illegal string offset 'file' in /web/home/xxx/html/skin/board/basic/write.skin.php on line 156 Warning: Illegal string offset 'source' in /web/home/xxx/html/skin/board/basic/write.skin.php on line 157 Warning: Illegal string offset 'size' in /web/home/mymoodae/html/skin/board/basic/write.skin.php on line 157 글 신규 등록시에는 뜨지 않는 에러인데, 첨부..

[php] PHPExcel 엑셀로 데이터 다운받기

1. PHPExcel 다운받기 PHPExcel은 데이터를 엑셀로 다운받을 수 있게 해주는 라이브러리이다. https://github.com/PHPOffice/PHPExcel 홈페이지에서 다운받거나 아래 파일을 다운 받는다. 2. 다운로드 파일 코드 별도의 php파일을 만든 후, 파일 상단에 include_once('/PHPExcel.php');를 넣어 PHPExcel.php을 불러온다. include_once('/PHPExcel.php'); 그 다음으로 SQL문 등 데이터를 가져오는 구문들을 넣어주고 $rows[] = array(1열데이터,2열데이터, 3열데이터, 4열데이터, 5열데이터); 이런식으로 array()안에 데이터를 콤마로 구분하여 넣어준다. 나는 세개의 시트로 나누어서 다운받게 할 예정이라 ..