Loading...
PHP substr() vs mb_substr() - 멀티바이트 문자 자르기 완벽 가이드

PHP에서 문자열을 자르는 작업은 일상적이다. 그런데 한글, 일본어, 중국어 같은 멀티바이트 문자를 다룰 때 substr()을 썼다가 문자가 깨지는 경험을 해봤을까? 대부분의 개발자는 이 문제가 왜 발생하는지, substr()과 mb_substr()의 정확한 차이가 뭔지 모른 채 인터넷에서 찾은 답을 그냥 적용한다. 이번에는 바이트 단위와 문자 단위의 차이···

1 0
PHP array_merge_recursive() 배열 덮어쓰기 오류 해결 - array_merge_deep() 서포트 함수 제작 및 실무 적용

다차원 설정 배열이나 외부 API 응답 데이터를 병합할 때 PHP의 기본 함수인 array_merge_recursive()를 썼다가 기존 값이 덮어씌워지지 않고 원치 않게 배열로 감싸지는 이상한 현상을 경험해봤을 것이다.다만 왜 이런 동작이 발생하는지, 기본 함수만으로는 다차원 연관 배열의 깊은 병합(Deep Merge)을 제대로 처리할 수 없다는 사실을 ···

2 0
PHP str_replace()와 str_ireplace() 차이 - 대소문자 구분 문자열 치환 완벽 가이드

문자열 치환 작업은 웹 개발에서 가장 자주 마주치는 작업 중 하나다. 그런데 대부분의 개발자들은 PHP의 str_replace()만 사용하거나, str_ireplace()와의 차이를 제대로 모른 채 상황에 맞지 않는 함수를 쓰고 있다. 특히 사용자 입력값을 처리하거나 동적 콘텐츠에서 특정 단어를 치환해야 할 때, 대소문자 처리 실수로 인해 예기치 않은 결과···

11 0
PHP array_merge() vs array_combine() - 배열 병합 실무 완벽 가이드

배열을 다루다 보면 두 개 이상의 배열을 합쳐야 하는 상황이 자주 나온다. 그럴 때 array_merge()를 쓸지, array_combine()을 쓸지 헷갈려하는 개발자들이 많다. 대충 둘 다 배열을 합치는 함수라고 생각하고 그냥 문서를 보지 않고 쓰는 경우도 많은데, 사실 둘은 동작 방식이 완전히 다르고 상황에 따라 쓰는 함수가 달라진다. 이번에는 두 ···

9 0
PHP array_reduce()로 배열을 단일 값으로 축약하기 - 복잡한 집계 연산 완벽 가이드

배열의 모든 요소를 순회하면서 누적된 결과값을 계산해야 할 때가 있다. 장바구니 총액 계산, 배열 요소 조건부 필터링 후 합산, 또는 복잡한 데이터 변환 같은 작업 말이다. 다만 대부분의 개발자들은 반복문(foreach)으로 변수를 하나하나 더하거나 빼면서 코드가 길어지고 유지보수하기 어려워진다는 걸 경험했을 것이다. 이번에는 PHP array_reduce···

7 0
PHP array_key_exists()와 isset()의 치명적 차이 - null 값 처리 완벽 가이드

배열에서 특정 키가 존재하는지 확인할 때 많은 개발자들이 isset()과 array_key_exists()를 같은 것으로 생각한다. 다만 둘은 null 값을 처리하는 방식이 완전히 다르고, 이 차이를 모르면 버그를 찾기 어렵다. 이번에는 두 함수가 정확히 뭐가 다른지, 언제 뭘 써야 하는지, 실전 예제로 완벽하게 정리해서 소개하겠다. 1단계: 기초 개념 -···

8 0
PHP 다차원 배열 정렬 복잡함 해결 - array_sort_by_key() 서포트 함수 제작 및 활용법

DB에서 데이터를 조회한 뒤 PHP 단에서 특정 키(Key) 기준으로 연관 배열 목록을 재정렬해야 할 때, 매번 usort()나 array_multisort()의 복잡한 익명 함수 문법 때문에 애를 먹은 적이 있을 것이다.다만 대부분의 개발자들은 array_multisort()에 인자를 전달하는 방식이나 usort()의 우주선 연산자() 작동 원리를 정확히···

8 0
PHP array_combine()으로 두 배열을 키-값 쌍으로 병합하기 - 실무 데이터 매핑 완벽 가이드

배열 처리 작업을 하다 보면 두 개의 배열을 하나로 병합해야 하는 상황이 자주 생긴다. 예를 들어 CSV 파일에서 헤더 행과 데이터 행을 읽었을 때, 각 데이터를 헤더와 매핑해야 하거나, API 응답에서 이름 배열과 값 배열을 받았을 때 이를 연결하는 경우다. 다만 대부분의 개발자들은 반복문으로 일일이 처리하거나, 존재하지 않는 함수를 찾아 헤매는 경우가 ···

4 0
PHP str_pad()로 숫자 앞에 0 채우기 - 주문번호/영수증 번호 포매팅 완벽 가이드

개발하다 보면 주문번호, 영수증번호, 송장번호 같은 ID를 생성할 때 항상 같은 자릿수로 맞춰야 한다. 예를 들어 1번 주문을 "000001"로 표시하고, 10000번 주문을 "010000"으로 만들어야 하는데, 이걸 제대로 모르면 문자열 함수들을 잔뜩 조합해서 복잡하게 처리한다. 다만 대부분의 개발자들은 PHP가 이걸 위해 만든 str_pad() 함수의 ···

12 0
PHP array_map으로 배열 요소 일괄 변환하기 - 반복문 대신 함수형 프로그래밍

배열의 모든 요소에 같은 작업을 적용해야 할 때, 대부분의 개발자는 foreach 루프를 쓴다. 다만 PHP의 array_map() 함수를 모르면, 불필요하게 길고 복잡한 코드를 작성하게 된다.이번에는 array_map()이 정확히 뭔지, 왜 필요한지, 어떻게 쓰는지 완벽하게 정리해서 소개하겠다. 함수형 프로그래밍 패턴으로 코드를 간결하게 만들고, 실무에서···

10 0
PHP snake_case를 camelCase로 자동 변환 - array_keys_to_camel() 서포트 함수 제작 및 실무 적용

PHP 백엔드에서 데이터베이스 쿼리를 실행한 후 그 결과를 JSON API로 클라이언트에 전달할 때, DB의 snake_case 필드명을 그대로 노출해서 프론트엔드 개발자에게 지적을 받은 적이 있을 것이다. 다만 데이터가 중첩된 다차원 배열 구조일 때 모든 키 값을 손수 camelCase로 변경하는 유틸리티 함수를 제대로 작성해두지 않아 foreach 루프···

12 0
PHP 중첩 배열 접근 시 Undefined Index 에러 해결 - array_get_dot() 서포트 함수 제작 및 실무 적용

PHP 프로젝트를 진행하면서 외부 API 연동 결과나 복잡한 설정(Config) 데이터처럼 여러 단계로 중첩된 배열(Nested Array) 데이터를 다뤄본 경험이 있을 것이다.다만 매번 키의 존재 여부를 검증하기 위해 isset()을 무한 반복하거나 Null 합치기 연산자(??)를 남발하다가 코드 가독성이 급격히 떨어지고 예상치 못한 Warning을 마주···

14 0
PHP 배열 그룹화 처리 문제 해결 - array_group_by() 서포트 함수 구현 및 실무 활용

PHP로 데이터베이스 조회 결과나 API 응답 데이터를 다루다 보면, 특정 필드(Key)를 기준으로 배열 데이터를 그룹화해야 하는 상황을 한 번쯤 경험해봤을 것이다.다만 PHP 표준 함수 라이브러리에는 array_column이나 array_map 등은 있지만, 정작 실무에서 가장 많이 필요한 array_group_by() 형태의 그룹화 함수가 제공되지 않아···

11 0
PHP 파일 용량 단위 변환 - format_bytes() 서포트 함수 구현 및 실무 적용

PHP로 파일 업로드 시스템이나 서버 디렉토리 용량 관리 기능을 개발하다 보면, 1048576이나 5368709120과 같은 순수 바이트(Byte) 단위를 1MB, 5GB처럼 사람이 읽기 쉬운 포맷으로 변환해야 하는 상황을 흔히 경험해봤을 것이다.다만 단순 나눗셈 연산이나 어설픈 if 조건문으로 이를 구현할 경우, KB부터 TB, PB까지 유연하게 대응하지···

16 0
실수로 노출되는 개인정보 방지 - PHP 개인정보 마스킹 서포트 함수 제작 및 활용법

관리자 페이지나 화면 모니터링 로그를 개발하다가 사용자의 이메일, 전화번호, 이름 같은 민감한 개인정보가 그대로 화면에 노출되는 상황을 경험해봤을까?관리자 페이지나 시스템 로그 파일에 개인정보를 날것(Raw Data) 그대로 남겨두는 것은 개인정보보호법 및 ISMS 인증 기준 위반일 뿐만 아니라 심각한 데이터 유출 사고로 이어질 수 있다. 다만 매번 화면을···

15 0
PHP 의 DOMDocument 클래스를 이용한 HTML 문서 meta content 추출 서포트 함수

meta 태그란 사이트 문서 head 상에 삽입된 태그로 흔히 웹 문서 검색 시 해당 문서의 정보 데이터를 설정하는 역활을 한다. 이러한 meta 태그는 종류가 여러가지고 보통 검색 시에 활용하기도 하지만 특정 사이트 인증 및 설정 시에도 사용이 된다. 본래 PHP 에서는 메타태그를 가져올 수 있는 get_meta_tags() 함수가 제공이 되는데 이 함수···

2,704 4
[PHP] HTML 소스코드에서 특정 태그의 속성정보 추출 함수 | get_tag_data_all()

이번에 소개할 서포트 함수는 HTML 소스코드에서 특정 태그의 속성값을 배열로 추출할 수 있는 함수다. 보통 이미지 태그에서 src 속성을 추출 하기위해 많이 사용하는 정규식이 있는데 해당 정규식을 조금 커스텀하여 모든 태그의 특정 속성들을 전부 가져올 수 있도록 개선해보았다. 사용방법 및 예제는 아래를 참고하길 바란다. get_tag_data_all 함수···

2,664 4
[PHP] 소스코드 압축 및 주석 삭제를 도와주는 서포트 함수 | text_compression() , remark_remove()

이번에 소개할 서포트 함수는 출력된 문서기준으로 HTML, CSS, JS, TEXT 코드들을 압축해 주는 함수다. 참고로 이 함수는 HTML 주석도 숨김처리를 해주나, /**/ 주석같은 경우 텍스트 압축 및 주석 치환 위치에 따라 소스코드가 이상하게 처리되는 경우도 있으니 참고하여 사용하기 바란다. text_compression 함수 - 소스코드 압축 fu···

2,197 5
[PHP] 서버 디렉토리 조회 후 배열로 결과값을 보여주는 서포트 함수 | array_dir_filelist()

이번에 소개할 서포트 함수는 서버내 디렉토리를 조회하여 정보를 배열로 보여주는 함수이다. 자세한 사용방법은 array_dir_filelist 함수내 주석을 참고하기 바란다. 생각해보니 작업하면서 사용할일이 거의 없기도 하지만 혹시나 필요할 경우 참고하여 사용하기 바란다. array_dir_filelist 함수 function array_dir_fileli···

1,939 3
[PHP] DataBase PASSWORD 함수와 동일한 해시 생성 서포트 함수 | db_password_hash()

MYSQL 에서 제공되는 내장함수중 PASSWORD 라는오래전부터 많이 사용되고 있는 함수가 있다. 이 함수는 단방향 암호화로 해독자체가 거의 불가능하기때문에 보안상으로는 상당히 좋다. 다만 키값으로 암호화가 되는게 아니기때문에 해독되어 알려진 비밀번호도 많이 존재한다고 한다. 뭐 보안을 위해서 개발자의 능력도 중요하지만 사용자가 비밀번호 보안을 신경쓰는···

1,909 2
REDINFO Since 2014
webmaster@redinfo.co.kr
Copyright © Redinfo All Rights Reserved