ASP Left/Right 함수를 PHP substr로 구현하는 방법
페이지 정보

본문
ASP Left/Right 함수를 PHP substr로 구현하는 방법
PHP
ASP의 Left, Right 함수 기능을 PHP에서 substr() 함수와 사용자 정의 함수로 구현하는 방법과 문자셋별 주의사항을 확인합니다.
PHP substr() 함수로 ASP Left/Right 함수 구현하기
PHP에는 ASP와 같은 내장 left(), right() 함수가 없으므로 substr() 함수를 활용하여 구현할 수 있습니다. ASP와 PHP는 문자열 인덱스 시작 기준이 다르므로(ASP는 1, PHP는 0) 사용 시 주의가 필요합니다.
substr() 파라미터 활용 예시
- Left 함수 효과:
substr($string, 0, $length)를 사용하여 문자열의 처음부터 지정한 길이만큼 추출합니다. - Right 함수 효과:
substr($string, -$length)와 같이 음수 파라미터를 사용하여 문자열의 끝에서부터 지정한 길이만큼 추출합니다. - Mid 함수 효과:
substr($string, $start, $length)를 사용하여 시작 위치와 길이를 지정해 추출합니다.
사용자 정의 함수 구현은 Q2에서 다룹니다.
한글 처리 시 주의사항
substr()은 바이트 단위로 동작하므로, 한글이 포함된 문자열을 자를 경우 글자가 깨질 수 있습니다. 한글을 포함한 멀티바이트 문자열을 다룰 때는 mb_substr() 함수를 사용하는 것이 권장됩니다.
PHP 사용자 정의 함수(left, right) 작성 방법
ASP의 내장 함수인 left(), right()와 유사한 인터페이스를 PHP에서 제공하려면 substr() 함수와 문자열 길이를 반환하는 strlen() 함수를 조합하여 사용자 정의 함수(function)로 구현할 수 있습니다.
사용자 정의 함수 예시
function left($string, $count) {
return substr($string, 0, $count);
}
function right($value, $count) {
return substr($value, (strlen($value) - $count), strlen($value));
}
주의 사항
- 인덱스 차이: PHP의
substr()은 문자열의 첫 주소를0으로 시작하므로,1부터 시작하는 ASP와 차이가 있습니다. - 멀티바이트 문자 처리: 위 함수는 바이트 단위로 동작하므로 한글과 같은 멀티바이트 문자를 처리할 때 글자가 깨질 수 있습니다. 한글을 포함한 문자열을 정확히 자르려면
mb_substr()함수를 사용하는 것이 권장됩니다(Q3 참조). - 호환성: 특정 PHP 버전 언급이 없으므로 최신 버전에서의 호환성은 직접 테스트가 필요합니다.
PHP 한글 문자열 자르기 깨짐 현상 해결 방법
PHP의 기본 substr() 함수는 바이트 단위로 문자열을 자르기 때문에, UTF-8이나 EUC-KR 같은 멀티바이트 환경에서 2바이트 또는 3바이트로 표현되는 한글의 중간 바이트를 자르게 되면 글자가 깨지는 현상이 발생합니다.
mb_substr() 함수 사용
멀티바이트 문자열을 정확한 문자 단위로 자르려면 mb_substr() 함수를 사용해야 합니다.
mb_substr($str, $start_Pos, $length, $encoding);
$str: 자를 원본 문자열$start_Pos: 시작 위치 (첫 글자는 0부터 시작)$length: 가져올 글자 수$encoding: 인코딩 형식 ('UTF-8','EUC-KR'등 지정)
사용 예시
// UTF-8 환경에서 안전하게 글자 자르기
$str = "반갑습니다. 환영합니다.";
$result = mb_substr($str, 0, 5, 'UTF-8');
echo $result;
주의 사항 및 다음 행동
mb_substr()사용 시Call to undefined function mb_substr()오류가 발생한다면 서버에mbstring확장 모듈이 설치 및 활성화되어 있는지 확인해야 합니다.- 리눅스 환경 등에서는 서버 패키지에 맞는
php-mbstring패키지 설치가 필요할 수 있습니다.
참고자료
기타 참고자료
- m.blog.naver.com — php에서 asp의 left, right 함수 사용하기 : 네이버 블로그
- codingeverybody.kr — PHP substr() 함수 – 문자열을 잘라서 추출하기 - 코딩에브리바디
- link2me.tistory.com — 소소한 일상 및 업무TIP 다루기 :: PHP 한글자르기 substr
- webmadang.net — 웹마당넷 |mb_substr() 함수로 한글 문자열 자르기
- cppcomeon.tistory.com — 리눅스 php-mbstring 설치하기 Call to undefined function mb_substr()
- 이전글PHP 입력값 유효성 검사 및 타입 검증 가이드 26.09.30
- 다음글그누보드·영카트 아이코드 SMS 발신번호 사전등록 가이드 26.09.30
댓글목록
등록된 댓글이 없습니다.