[PHP] ereg() is deprecated (or eregi) 오류 발생시 해결 방법

[PHP] ereg() is deprecated (or eregi) 오류 발생시 해결 방법

문자열을 정규화 패턴으로 검색 하는 경우 많이 사용하는 ereg/eregi 함수입니다.

하지만 PHP 5.3 이후 버전에서는 deprecated 라는 에러 레벨이 추가되면서 ereg 함수 사용시 “ereg() is deprecated” 라는 오류를 발생시키게 됩니다. 엄밀하게 따진다면 이는 오류가 아닌 경고성 메세지이며 PHP 6에서는 사라지는 함수이니 주의하라는 의미입니다.

이미 PHP 5.x 버전으로 복잡하게 구현된 경우는 php.ini의 error_reporting에서 deprecated 레벨에 대해 예외처리로 메세지가 출력되지 않게 할 수 있겠지만 향후 유지관리/상위버전 호환성을 위해 ereg/eregi 함수를 사용하지 않는 것을 권장 합니다.

ereg 함수를 대신 해 사용가능한 함수는 preg_match 입니다. 함수 변경을 하면서 패턴 인자도 형태가 약간 달라지게 되는게 그 중 한 예를 보여드리겠습니다.

// ereg() function
ereg('^AA', '이 전건지 사이즈는 AA입니다.');

// preg_match() function
preg_match('/^AA/', '이 건전지 사이즈는 AA입니다.');

위 내용을 보시면 아시겠지만 첫번째 인자(정규식 패턴)에 슬래시(/)가 추가됩니다.

%d 블로거가 이것을 좋아합니다: