Webi Blog

웹아이에서 운영되고 있는 블로그입니다.

php 14

PHP 문자열 문자셋 확인하기 | mb_detect_encoding()

보통 개발을 진행할 때 주로 UTF-8로 문자셋을 사용합니다. 일반적으로 개발할 경우는 문제가 없지만, 외부 서비스를 연동할 때 문자셋이 다른 경우가 있습니다. 그리고 개발된 지 오래되어 EUC-KR로 되어있는 홈페이지를 수정할 때 문자셋이 달라 문자가 깨지는 경우를 많이 접하게 됩니다. 보통은 iconv() 함수를 이용해서 변환을 해주지만 이 함수는 원래의 문자셋을 알아야 하기 때문에 현재 변수에 문자가 어떠한 문자셋으로 들어가 있는지 알아야 합니다. 하지만 문자셋 확인이 안 되어 iconv() 함수를 사용하더라도 문자가 깨지는 경우가 있습니다. 이럴 경우 현재 변수에 담긴 값의 문자셋이 무엇인지 알아내기 위해 mb_detct_encoding() 함수를 사용합니다. $str = "테스트 문자"; $en..

Web/PHP 2022.02.28

스팸글은 이제 그만!! PHP로 구글 reCaptcha v3 사용하기

상담 신청 혹은 문의를 받기 위해 홈페이지에 간단하게 폼을 만들어 놓으면 지긋지긋하게 스팸글이 올라오곤 합니다. 그래서 캡챠 기능을 많이 이용합니다. 캡챠 기능이 너무 불편해요. 저는 캡챠 기능이 사실 너무 싫어요ㅠ 스팸글을 막기 위해서는 어쩔 수 없다는 생각도 합니다. 글자를 보고 입력을 해야하는데 그나마 보기 편한 곳은 한 번에 통과하는 경우도 있지만 보기 힘들게 해 놓은 곳은 5번 이상을 시도해도 실패한 적이 많아요. 하지만 구글에서 서비스 중인 reCaptcha v3를 사용하면 이런 문제를 해결할 수 있습니다. 어떠한 입력도 없이 구글이 판단하는 사용자의 점수를 기준으로 스팸글인지 판단해서 막아주는 서비스 입니다. 점수가 어떻게 계산되는지는 모르겠지만 작동 방식을 보면 구글이 보내주는 키값을 함께..

Web/Plugin 2022.02.16

삼삼해물

고도몰5를 이용한 튜닝작업이 다수 진행된 삼삼해물 쇼핑몰입니다. 새벽배송과 택배배송을 함께 사용하면서 그에 따른 장바구니, 주문서 튜닝이 진행되었습니다. 사이트명 : 삼삼해물 주요 작업 : PC, 모바일 웹 개발 솔루션 : 고도몰5 Pro 개발 환경 : LAMP (Linux + Apache + MySql + PHP) 사이트주소 : https://www.samsamheamul.com/ 상세 작업 내역 퍼블리싱 백엔드 개발 새벽배송, 기본배송 선택 주문 개발 주문서 수령일 선택 주문 개발 관리자 상품별, 날짜별 재고 설정 개발 조건별 상품금액 디스플레이 방식 변경 기간별 할인을 이용한 타임 세일 개발 상품 상세페이지 팝업 개발

Experience/Web 2022.01.25

PHP에서 배열을 문자열로 합치기, 문자열을 배열로 만들기 | explode, implode

안녕하세요~ 이번 시간에는 PHP의 explode와 implode에 대해서 알아보겠습니다. 간단하게 설명을 드리자면, explode는 문자열을 특정 문자로 분리해서 배열로 만들어 줍니다. implode는 배열을 특정 문자로 합쳐서 문자열로 만들어 줍니다. 이게 도대체 무슨 말?ㅎㅎ 사실 프로그램 공부하면서 제일 어려운 건 이해가 쉽지 않은 것도 있지만 이걸 왜! 어디에! 써야 하는지를 모르겠다는 게 제일 힘든 거 아닐까요? 물론 저도 처음에 공부할때 그런 어려움이 있었어요ㅠ 자! 일단 어떻게 사용하는지에 대해서 알아볼게요 string implode ( string $glue , array $pieces ) implode를 먼저 알아볼게요.. 사용법은 위와 같습니다. // 결과 a1 is: 1,2,3 a2..

Web/PHP 2021.09.07

[PHP] 원격지 파일 주소 노출 안하고 curl로 다운로드 받기

파일 다운로드를 구현할 때 아주 간단하게 a태그를 이용해서 구현을 합니다. 하지만 그렇게 할 경우 파일 경로가 아주 쉽게 노출이 되어버립니다. 보통 노출되어도 크게 상관없는 경우가 많지만 유료 클래스 상품을 구매한다거나 온라인 컨텐츠를 유료로 판매할 경우에는 파일의 경로가 노출되면 쉽게 공유가 되어버리기 때문에 노출을 막습니다. 물론 스토리지나 CDN 서비스 자체에서 경로를 알더라도 권한을 막아 불가하게 설정할 수 있지만 단순 웹호스팅을 이용하거나 보안 설정이 불가피 할 때 PHP에서 파일 경로를 노출하지 않고 원격지 파일을 다운로드를 받을 수 있는 방법을 포스팅 합니다. // 파일을 받을 권한이 있는 지 체크 if($is_guest) alert('다운로드 권한이 없습니다.'); $filepath = "..

Web/PHP 2021.09.03

PHP를 이용해 AWS S3 스토리지에 파일 업로드 하기

요즘 AWS를 이용해 서버를 구축하시는 분들이 많습니다. AWS에서 제공되는 많은 서비스 중 오늘은 PHP를 이용하여 AWS의 S3 스토리지에 파일을 업로드하는 방법에 대해 포스팅합니다. S3 스토리지에 직접 업로드하는 방식이 아닌 PHP 코드로 파일 URL 또는 Form을 통한 파일 업로드하는 방식입니다. 우선 AWS에서 제공하는 SDK를 설치해야 합니다. AWS PHP SDK : https://docs.aws.amazon.com/aws-sdk-php/v3/guide/getting-started/installation.html Installing the AWS SDK for PHP Version 3 - AWS SDK for PHP Using PHP with the Suhosin patch is not ..

Server/AWS 2021.08.31

PHP 배열을 손쉽게 JSON 형식으로 변환하기 | json_encode, json_decode

여러분들 PHP로 개발하실 때 배열 많이 사용하시나요? 저는 정말 많이 사용하는데요~ 배열을 잘 사용한다면 더욱 편하게 개발할 수 있는 것 같아요~ 오늘은 배열을 JSON 형식으로 변환하는 함수에 대해서 알아보겠습니다. 다들 JSON이 뭔지 아시죠? json은 자바스크립트 언어에서 파생되어 자바스크립트의 구문 형식을 따르지만, C, C++, C#, 자바, 펄, 파이썬 등 수많은 프로그램 언어에서 쉽게 사용할 수 있는 독립형 데이터 포맷이라고 합니다. 그냥 쉽게는 배열이랑 비슷한데 쓰는 방법이 좀 다르다!! 그리고 print 하면 문자열로 출력이 된다고 보시면 됩니다~ 물론 PHP에서는 사용이 불가능합니다!! json을 php에서 사용하려면 배열로 변환해서 사용해야 합니다. 저는 주로 데이터를 주고받거나 ..

Web/PHP 2021.08.26