BOARD

문제 해결

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

페이지 정보

profile_image
작성자 최고관리자
댓글 0건 조회 0회 작성일 26-10-29 16:22

본문

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

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 파일을 백업하시기 바랍니다.

수정 절차

  1. /www/bbs/list.php 파일을 엽니다.
  2. 89라인 근처의 아래 코드를 찾습니다.
    $arr_notice = split("\n", trim($board[bo_notice]));
  3. 위 코드를 아래와 같이 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 설정 변경

  1. php.ini 파일을 엽니다.
  2. error_reporting 항목을 찾아 아래와 같이 수정합니다.
    error_reporting = "E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_USER_DEPRECATED"
    (큰따옴표를 반드시 포함해야 합니다.)
  3. 변경 후 웹서버(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 캐시를 초기화한 뒤 다시 접속해 보시기 바랍니다.

함께 보면 좋은 글

참고자료

기타 참고자료

댓글목록

등록된 댓글이 없습니다.