PHP 문자열 자르기 및 말줄임표 처리 방법
페이지 정보

본문
그누보드 환경에서 게시판 제목이나 본문이 길어 레이아웃이 깨지는 문제를 방지하기 위해 내장 함수와 바이트 단위 사용자 정의 함수로 문자열을 자르고 말줄임표(...)를 처리하는 방법을 알아봅니다.
그누보드5 내장 함수를 활용한 문자열 자르기 및 말줄임표 처리 방법
게시판 제목이나 본문 내용이 설정된 영역보다 길 경우 레이아웃이 깨질 수 있습니다.이를 방지하기 위해 특정 글자 수 이후의 내용을 말줄임표로 처리하면 가독성을 높이고 디자인을 유지할 수 있습니다.
그누보드5 내장 함수 활용
그누보드5는 lib/common.lib.php 파일에 utf8_strcut 함수를 내장하고 있습니다. 이 함수는 멀티바이트 문자열을 안전하게 처리하므로 별도의 함수를 구현할 필요 없이 바로 사용할 수 있습니다.
사용 방법
$str = "오늘은 기분좋은하루입니다";
echo utf8_strcut($str, 23, '...');
위 코드는 문자열을 23자까지 자르고, 나머지 부분에 말줄임표를 추가하여 출력합니다.
주의사항
utf8_strcut 함수는 내부적으로 멀티바이트 문자열을 안전하게 처리하도록 설계되어 있습니다. 사용자의 PHP 버전 및 서버 환경에 따라 문자열 처리 방식이 다를 수 있으나, 그누보드5 환경에서는 이 내장 함수를 사용하는 것이 가장 안정적입니다.
바이트 단위 문자열 자르기 사용자 정의 함수
그누보드5 환경이 아니거나 특정 환경에서 바이트 단위로 정밀하게 제어해야 할 경우, 사용자 정의 함수를 활용할 수 있습니다.
사용자 정의 함수 코드
function str_cutting($string, $len) {
if(strlen($string) < $len) {
return $string;
} else {
$string = substr($string, 0, $len);
$cnt = 0;
for ($i = 0; $i < strlen($string); $i++) {
if (ord($string[$i]) > 127) $cnt++;
}
$string = substr($string, 0, $len - ($cnt % 3));
$string .= "...";
return $string;
}
}
주의사항
사용자 정의 함수는 바이트 단위로 계산하므로 UTF-8 환경에서 한글이 깨질 위험이 큽니다. 이를 방지하려면 서버에 mbstring 확장 모듈이 설치되어 있는지 확인하고, 가급적 mb_substr을 활용하거나 그누보드5 내장 함수인 utf8_strcut을 사용하는 것을 권장합니다.
코드 수정 전 백업 및 복구 방법
코드 수정 전에는 반드시 FTP 등을 통해 해당 파일을 로컬 PC로 다운로드하여 백업하십시오. lib/common.lib.php 등 핵심 파일을 수정할 경우, 오류 발생 시 즉시 백업해 둔 원본 파일을 서버에 다시 업로드하여 복구할 수 있도록 준비해야 합니다.
적용 결과 확인 방법
코드를 적용한 후에는 게시판 목록이나 본문 페이지에서 의도한 글자 수만큼 문자열이 잘리고 말줄임표가 정상적으로 표시되는지 브라우저를 통해 확인한다. 만약 한글이 깨지거나 레이아웃이 여전히 어긋난다면 utf8_strcut 함수를 사용 중인지 다시 확인해야 한다.
상황별 판단 가이드
| 내 상황 | 우선할 판단 | 다음 행동 |
|---|---|---|
| 그누보드5 환경에서 게시판 제목이나 본문 레이아웃이 깨짐 | lib/common.lib.php의 utf8_strcut 내장 함수 활용 | 지정할 글자 수와 말줄임표(...)를 포함한 코드를 적용하고 브라우저로 확인 |
| 그누보드5 외 환경이거나 바이트 단위 제어가 필요함 | 사용자 정의 함수(str_cutting) 구현 검토 | UTF-8 환경에서의 한글 깨짐 가능성을 염두에 두고 멀티바이트 지원 여부 점검 |
실전 FAQ
Q. 코드를 수정했는데 화면에 아무것도 나오지 않거나 오류가 발생합니다.
- 예외 및 대안: 핵심 파일을 수정하는 과정에서 문법 오류가 발생했을 가능성이 높습니다. 수정 전 백업해 둔 원본 파일을 즉시 덮어쓰기하여 복구한 뒤, 함수 인자 값과 따옴표·세미콜론 등 문법 요소를 다시 확인하세요.
참고자료
기타 참고자료
- 이전글그누보드4 게시글 작성일 및 조회수 관리자 수정 방법 26.09.15
- 다음글그누보드 메뉴 활성화 상태 표시 및 마우스 오버 효과 구현 26.09.15
댓글목록
등록된 댓글이 없습니다.