PHP 5.3 이상 그누보드 split 함수 경고 메시지 수정 방법
페이지 정보

본문
PHP 5.3 이상 그누보드 split 함수 경고 메시지 수정 방법
Q.
Q. 소스 코드를 수정했는데도
PHP 5.3 이상 환경으로 업그레이드한 후 그누보드에서 발생하는 split 함수 Deprecated 경고 메시지의 원인을 확인하고, explode 함수로 코드를 안전하게 수정하는 방법을 안내합니다.
PHP 5.3 이상 환경에서 list.php 파일의 split 함수 경고 발생 원인
PHP 5.3.0 이상 환경에서 그누보드 실행 시 Deprecated: Function split() is deprecated 경고 메시지가 발생하는 것은 split() 함수가 PHP 5.3.0부터 제거 예정(Deprecated) 기능으로 지정되었기 때문입니다. 이 경고는 향후 버전에서 해당 함수가 완전히 삭제될 예정이므로 더 이상 사용하지 말 것을 권고하는 개발자용 메시지입니다.
그누보드 list.php 파일의 split 함수 경고 수정 방법
PHP 5.3.0 이상 버전 환경에서 발생하는 Deprecated 경고는 split() 함수를 explode() 함수로 변경하여 해결할 수 있습니다. 수정 전 반드시 /www/bbs/list.php 파일을 백업하시기 바랍니다.
수정 절차
/www/bbs/list.php파일을 엽니다.- 89라인 근처의 아래 코드를 찾습니다.
$arr_notice = split("\n", trim($board[bo_notice])); - 위 코드를 아래와 같이
explode()함수를 사용하는 코드로 변경하고 저장합니다.$arr_notice = explode("\n", trim($board[bo_notice]));
참고 사항
split()함수는 PHP 5.3.0 이상부터 제거 예정(Deprecated)으로 등록되었으므로, 위와 같이explode()함수로 대체하는 것이 권장되는 해결책입니다.
소스 코드 수정 없이 경고 메시지 숨기기
소스 코드를 직접 수정하기 어려운 경우, php.ini 설정이나 PHP 코드 내 error_reporting 설정을 통해 경고 출력을 제어할 수 있습니다. 다만, 이는 근본적인 해결책이 아니며 향후 PHP 버전 업그레이드 시 문제가 될 수 있으므로 가급적 소스 코드를 수정하는 방법을 권장합니다.
1. php.ini 설정 변경
php.ini파일을 엽니다.error_reporting항목을 찾아 아래와 같이 수정합니다.
(큰따옴표를 반드시 포함해야 합니다.)error_reporting = "E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED"- 변경 후 웹서버(Apache 등)를 재시작합니다.
2. 소스 코드 내 적용
소스 코드 상단에 아래 코드를 추가하여 해당 페이지의 경고를 숨길 수 있습니다.
error_reporting(E_ALL & ~( E_NOTICE | E_DEPRECATED | E_USER_DEPRECATED ));
상황별 판단 및 대응 가이드
| 내 상황 | 우선할 판단 | 다음 행동 |
|---|---|---|
PHP 5.3 이상 환경의 그누보드에서 list.php 파일 실행 시 Deprecated: Function split() 경고 발생 | split() 함수는 PHP 5.3.0 이상부터 제거 예정으로 등록되어 발생한 메시지이므로, 호환되는 함수로 변경 필요 | /www/bbs/list.php 파일의 89라인에서 $arr_notice = split("n", trim($board[bo_notice]));를 $arr_notice = explode("n", trim($board[bo_notice]));로 수정 후 저장 |
| 소스 코드 수정 없이 임시로 경고 문구를 숨기고 싶을 때 | php.ini 설정 또는 코드 내 error_reporting 조정 검토 | php.ini 파일의 error_reporting 항목에 & ~E_DEPRECATED 설정을 추가하거나 소스 상단에 관련 에러 리포팅 예외 처리 코드 추가 (단, 근본적인 해결을 위해 소스 코드 수정 권장) |
실전 FAQ
Q. split() 함수 대신 explode()로 변경할 때 인자 순서나 구분자 형태를 다르게 지정하면 어떻게 되나요?
- A: 함수 교체 시 인자 순서나 구분자 형태를 다르게 지정하면 공지사항 파싱 오류가 발생할 수 있습니다. 원본 코드의 구분자(
"\n")와 대상 문자열(trim($board[bo_notice])) 형태를 정확히 유지한 채 함수명만explode()로 변경해야 합니다.
Q. 소스 코드를 수정했는데도 list.php 페이지에 동일한 경고가 계속 표시됩니다.
- A: 웹서버 캐시나 PHP OPcache가 활성화되어 이전 바이트코드가 남아있을 수 있습니다. 웹서버(Apache 또는 Nginx)를 재시작하거나 PHP 캐시를 초기화한 뒤 다시 접속해 보시기 바랍니다.
함께 보면 좋은 글
- 그누보드 5.3 이상 자동등록방지 캡차 제거 및 특정 게시판 예외 처리 방법
- 그누보드 5.3 이상 회원 프로필 이미지 출력 함수 활용법
- PHP 5.3 이상에서 ereg 계열 함수를 preg 계열 함수로 마이그레이션하기
참고자료
기타 참고자료
- 다음글그누보드5 최신글 캐시 Parse error 해결 방법 26.10.29
댓글목록
등록된 댓글이 없습니다.